applied patch from Alfred Mickautsch for better DTD support. fixed bug

* xmlwriter.c include/libxml/xmlwriter.h doc/* : applied patch from
  Alfred Mickautsch for better DTD support.
* SAX2.c HTMLparser.c parser.c xinclude.c xmllint.c xmlreader.c
  xmlschemas.c: fixed bug #137867 i.e. fixed properly the way
  reference counting is handled in the XML parser which had the
  side effect of removing a lot of hazardous cruft added to try
  to fix the problems associated as they popped up.
* xmlIO.c: FILE * close fixup for stderr/stdout
Daniel
diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html
index 6def6a8..baeacb6 100644
--- a/doc/APIchunk10.html
+++ b/doc/APIchunk10.html
@@ -47,6 +47,7 @@
 <a href="html/libxml-parserInternals.html#xmlParseReference">xmlParseReference</a><br />
 <a href="html/libxml-parser.html#xmlSAXUserParseFile">xmlSAXUserParseFile</a><br />
 <a href="html/libxml-parser.html#xmlSAXUserParseMemory">xmlSAXUserParseMemory</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 <a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
@@ -265,34 +266,6 @@
 <a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
 <a href="html/libxml-tree.html#_xmlDtd">_xmlDtd</a><br />
 <a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
-</dd><dt>children</dt><dd><a href="html/libxml-HTMLparser.html#htmlAutoCloseTag">htmlAutoCloseTag</a><br />
-<a href="html/libxml-HTMLtree.html#htmlNodeDump">htmlNodeDump</a><br />
-<a href="html/libxml-HTMLtree.html#htmlNodeDumpFile">htmlNodeDumpFile</a><br />
-<a href="html/libxml-HTMLtree.html#htmlNodeDumpFileFormat">htmlNodeDumpFileFormat</a><br />
-<a href="html/libxml-HTMLtree.html#htmlNodeDumpFormatOutput">htmlNodeDumpFormatOutput</a><br />
-<a href="html/libxml-HTMLtree.html#htmlNodeDumpOutput">htmlNodeDumpOutput</a><br />
-<a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
-<a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
-<a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
-<a href="html/libxml-tree.html#xmlChildrenNode">xmlChildrenNode</a><br />
-<a href="html/libxml-tree.html#xmlDocGetRootElement">xmlDocGetRootElement</a><br />
-<a href="html/libxml-tree.html#xmlDocSetRootElement">xmlDocSetRootElement</a><br />
-<a href="html/libxml-tree.html#xmlElemDump">xmlElemDump</a><br />
-<a href="html/libxml-tree.html#xmlFreeNode">xmlFreeNode</a><br />
-<a href="html/libxml-tree.html#xmlFreeNodeList">xmlFreeNodeList</a><br />
-<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
-<a href="html/libxml-debugXML.html#xmlLsCountNode">xmlLsCountNode</a><br />
-<a href="html/libxml-tree.html#xmlNewChild">xmlNewChild</a><br />
-<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
-<a href="html/libxml-xmlwriter.html#xmlNewTextWriterTree">xmlNewTextWriterTree</a><br />
-<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
-<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
-<a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
-<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
-<a href="html/libxml-tree.html#xmlRootNode">xmlRootNode</a><br />
-<a href="html/libxml-valid.html#xmlValidGetPotentialChildren">xmlValidGetPotentialChildren</a><br />
-<a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathNextChild">xmlXPathNextChild</a><br />
 </dd><dt>childrens</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
 </dd><dt>childs</dt><dd><a href="html/libxml-tree.html#_xmlNode">_xmlNode</a><br />
 <a href="html/libxml-valid.html#xmlIsMixedElement">xmlIsMixedElement</a><br />
@@ -340,6 +313,7 @@
 <a href="html/libxml-parser.html#xmlReadFd">xmlReadFd</a><br />
 <a href="html/libxml-xmlreader.html#xmlReaderForFd">xmlReaderForFd</a><br />
 <a href="html/libxml-xmlreader.html#xmlReaderNewFd">xmlReaderNewFd</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
 </dd><dt>closes</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a><br />
 <a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
@@ -669,6 +643,7 @@
 <a href="html/libxml-xmlreader.html#xmlTextReaderReadInnerXml">xmlTextReaderReadInnerXml</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderReadOuterXml">xmlTextReaderReadOuterXml</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
 </dd><dt>contentspec</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseElementDecl">xmlParseElementDecl</a><br />
 </dd><dt>contextual</dt><dd><a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html
index b85c1ef..8f43429 100644
--- a/doc/APIchunk14.html
+++ b/doc/APIchunk14.html
@@ -237,6 +237,7 @@
 <a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderHasValue">xmlTextReaderHasValue</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderReadAttributeValue">xmlTextReaderReadAttributeValue</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
 <a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
 <a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathIdFunction">xmlXPathIdFunction</a><br />
diff --git a/doc/APIchunk15.html b/doc/APIchunk15.html
index a177b2b..b82ce9a 100644
--- a/doc/APIchunk15.html
+++ b/doc/APIchunk15.html
@@ -175,7 +175,6 @@
 <a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
-<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 </dd><dt>independently</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseAttribute">xmlParseAttribute</a><br />
 </dd><dt>index</dt><dd><a href="">index</a><br />
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html
index df28dfc..bea20d1 100644
--- a/doc/APIchunk17.html
+++ b/doc/APIchunk17.html
@@ -35,10 +35,7 @@
 <a href="APIchunk25.html">x-x</a>
 <a href="APIchunk26.html">y-z</a>
 </h2><h2>Letter m:</h2><dl><dt>machine</dt><dd><a href="html/libxml-xmlIO.html#xmlCheckFilename">xmlCheckFilename</a><br />
-</dd><dt>macro</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
+</dd><dt>macro</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
 </dd><dt>made</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_ISO8859X_ENABLED">LIBXML_ISO8859X_ENABLED</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncOutFunc">xmlCharEncOutFunc</a><br />
@@ -76,9 +73,6 @@
 </dd><dt>many</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
 <a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
 </dd><dt>maps</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLookupNamespace">xmlTextReaderLookupNamespace</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
 </dd><dt>mark</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html
index 5252a66..62d47a2 100644
--- a/doc/APIchunk18.html
+++ b/doc/APIchunk18.html
@@ -57,6 +57,8 @@
 <a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
 <a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
 <a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
 <a href="html/libxml-tree.html#xmlFreeNsList">xmlFreeNsList</a><br />
 <a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
 <a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html
index 43ab582..52e3b64 100644
--- a/doc/APIchunk2.html
+++ b/doc/APIchunk2.html
@@ -284,6 +284,9 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndElement">xmlTextWriterEndElement</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndPI">xmlTextWriterEndPI</a><br />
diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html
index 10ad6e0..b335510 100644
--- a/doc/APIchunk20.html
+++ b/doc/APIchunk20.html
@@ -409,6 +409,8 @@
 <a href="html/libxml-tree.html#xmlAddChild">xmlAddChild</a><br />
 <a href="html/libxml-tree.html#xmlAddNextSibling">xmlAddNextSibling</a><br />
 <a href="html/libxml-tree.html#xmlAddPrevSibling">xmlAddPrevSibling</a><br />
+<a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
 </dd><dt>property</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
@@ -441,7 +443,6 @@
 <a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
-<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 <a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
 <a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html
index 15e0097..bac0673 100644
--- a/doc/APIchunk22.html
+++ b/doc/APIchunk22.html
@@ -500,6 +500,7 @@
 <a href="html/libxml-xpointer.html#xmlXPtrNewRange">xmlXPtrNewRange</a><br />
 </dd><dt>start-tag</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElement">xmlParseElement</a><br />
 <a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
+</dd><dt>started</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
 </dd><dt>starting</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
 <a href="html/libxml-xmlautomata.html#xmlAutomataNewCountedTrans">xmlAutomataNewCountedTrans</a><br />
diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html
index cabe9f1..8dc92c9 100644
--- a/doc/APIchunk25.html
+++ b/doc/APIchunk25.html
@@ -191,7 +191,6 @@
 <a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
-<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 </dd><dt>xmlInitParser</dt><dd><a href="html/libxml-parserInternals.html#htmlInitAutoClose">htmlInitAutoClose</a><br />
 </dd><dt>xmlInitThreads</dt><dd><a href="html/libxml-threads.html#xmlInitThreads">xmlInitThreads</a><br />
 </dd><dt>xmlInitializeCatalog</dt><dd><a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
@@ -223,7 +222,6 @@
 <a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
-<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 </dd><dt>xmlLineNumbersDefault</dt><dd><a href="html/libxml-tree.html#xmlGetLineNo">xmlGetLineNo</a><br />
 </dd><dt>xmlListWalk</dt><dd><a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
 </dd><dt>xmlLoadExtDtdDefaultValue</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
@@ -384,9 +382,7 @@
 </dd><dt>xmlTextReaderLocatorPtr</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
 </dd><dt>xmlTextReaderRead</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
-</dd><dt>xmlTextWriterEndDTD</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
-<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
+</dd><dt>xmlTextWriterStartDTDEntity</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
 </dd><dt>xmlTextWriterWriteDTD</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
 </dd><dt>xmlTextWriterWritePI</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a><br />
 </dd><dt>xmlURI</dt><dd><a href="html/libxml-uri.html#xmlCreateURI">xmlCreateURI</a><br />
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html
index 6bfdb9d..6c22f43 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -60,6 +60,7 @@
 <a href="html/libxml-tree.html#xmlBufferCCat">xmlBufferCCat</a><br />
 <a href="html/libxml-tree.html#xmlBufferCat">xmlBufferCat</a><br />
 <a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
+<a href="html/libxml-tree.html#xmlCopyDoc">xmlCopyDoc</a><br />
 <a href="html/libxml-parser.html#xmlCtxtReadDoc">xmlCtxtReadDoc</a><br />
 <a href="html/libxml-tree.html#xmlDocDumpMemory">xmlDocDumpMemory</a><br />
 <a href="html/libxml-xmlIO.html#xmlOutputBufferWriteString">xmlOutputBufferWriteString</a><br />
diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html
index 8863856..eded8bb 100644
--- a/doc/APIchunk4.html
+++ b/doc/APIchunk4.html
@@ -197,6 +197,7 @@
 <a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
 <a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
 <a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
 </dd><dt>NRK</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
 </dd><dt>NSDef</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />
@@ -287,7 +288,6 @@
 <a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile</a><br />
 <a href="html/libxml-tree.html#xmlSaveFormatFileEnc">xmlSaveFormatFileEnc</a><br />
-<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
 <a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
 </dd><dt>Note:</dt><dd><a href="html/libxml-parser.html#fatalErrorSAXFunc">fatalErrorSAXFunc</a><br />
 <a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
diff --git a/doc/APIchunk8.html b/doc/APIchunk8.html
index 50673e4..210b466 100644
--- a/doc/APIchunk8.html
+++ b/doc/APIchunk8.html
@@ -493,6 +493,7 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteFormatDTD">xmlTextWriterWriteFormatDTD</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteVFormatDTD">xmlTextWriterWriteVFormatDTD</a><br />
@@ -561,6 +562,8 @@
 </dd><dt>appended</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
 </dd><dt>appending</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
 </dd><dt>appendix</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
+</dd><dt>applicable</dt><dd><a href="html/libxml-tree.html#xmlCopyNode">xmlCopyNode</a><br />
+<a href="html/libxml-tree.html#xmlDocCopyNode">xmlDocCopyNode</a><br />
 </dd><dt>application</dt><dd><a href="html/libxml-tree.html#_xmlAttr">_xmlAttr</a><br />
 <a href="html/libxml-tree.html#_xmlAttribute">_xmlAttribute</a><br />
 <a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index a36f187..de3c270 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -2550,6 +2550,7 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index f18e988..290aea4 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -387,6 +387,7 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a><br />
@@ -1845,6 +1846,9 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndElement">xmlTextWriterEndElement</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterEndPI">xmlTextWriterEndPI</a><br />
@@ -1875,6 +1879,7 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a><br />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index 973b478..b3d570f 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -2356,6 +2356,7 @@
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a><br />
+<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a><br />
 <a href="html/libxml-xmlwriter.html#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a><br />
diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html
index 4a2d6a5..b952919 100644
--- a/doc/html/libxml-tree.html
+++ b/doc/html/libxml-tree.html
@@ -88,12 +88,12 @@
 <pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	<a href="#xmlCopyDtd">xmlCopyDtd</a>		(<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)</pre>
 <pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a>	<a href="#xmlCopyNamespace">xmlCopyNamespace</a>	(<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)</pre>
 <pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a>	<a href="#xmlCopyNamespaceList">xmlCopyNamespaceList</a>	(<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)</pre>
-<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	<a href="#xmlCopyNode">xmlCopyNode</a>		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 int recursive)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	<a href="#xmlCopyNode">xmlCopyNode</a>		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 int extended)</pre>
 <pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	<a href="#xmlCopyNodeList">xmlCopyNodeList</a>		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)</pre>
 <pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a>	<a href="#xmlCopyProp">xmlCopyProp</a>		(<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br />					 <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)</pre>
 <pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a>	<a href="#xmlCopyPropList">xmlCopyPropList</a>		(<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br />					 <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)</pre>
 <pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	<a href="#xmlCreateIntSubset">xmlCreateIntSubset</a>	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)</pre>
-<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	<a href="#xmlDocCopyNode">xmlDocCopyNode</a>		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 int recursive)</pre>
+<pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	<a href="#xmlDocCopyNode">xmlDocCopyNode</a>		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 int extended)</pre>
 <pre class="programlisting">int	<a href="#xmlDocDump">xmlDocDump</a>			(FILE * f, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)</pre>
 <pre class="programlisting">void	<a href="#xmlDocDumpFormatMemory">xmlDocDumpFormatMemory</a>		(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br />					 int * size, <br />					 int format)</pre>
 <pre class="programlisting">void	<a href="#xmlDocDumpFormatMemoryEnc">xmlDocDumpFormatMemoryEnc</a>	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> out_doc, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** doc_txt_ptr, <br />					 int * doc_txt_len, <br />					 const char * txt_encoding, <br />					 int format)</pre>
@@ -644,15 +644,15 @@
 </pre><p>Builds the QName @prefix:@ncname in @memory if there is enough space and prefix is not NULL nor empty, otherwise allocate a new string. If prefix is NULL or empty it returns ncname.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ncname</tt></i>:</span></td><td>the Name</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>memory</tt></i>:</span></td><td>preallocated memory</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>preallocated memory length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new string which must be freed by the caller if different from @memory and @ncname or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlCopyDoc" id="xmlCopyDoc"></a>Function: xmlCopyDoc</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a>	xmlCopyDoc		(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 int recursive)<br />
 </pre><p>Do a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>recursive</tt></i>:</span></td><td>if 1 do a recursive copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlDocPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyDtd" id="xmlCopyDtd"></a>Function: xmlCopyDtd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	xmlCopyDtd		(<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>recursive</tt></i>:</span></td><td>if not zero do a recursive copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlDocPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyDtd" id="xmlCopyDtd"></a>Function: xmlCopyDtd</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	xmlCopyDtd		(<a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a> dtd)<br />
 </pre><p>Do a copy of the dtd.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dtd</tt></i>:</span></td><td>the dtd</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlDtdPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNamespace" id="xmlCopyNamespace"></a>Function: xmlCopyNamespace</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a>	xmlCopyNamespace	(<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br />
 </pre><p>Do a copy of the namespace.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNamespaceList" id="xmlCopyNamespaceList"></a>Function: xmlCopyNamespaceList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a>	xmlCopyNamespaceList	(<a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a> cur)<br />
 </pre><p>Do a copy of an namespace list.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNode" id="xmlCopyNode"></a>Function: xmlCopyNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlCopyNode		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 int recursive)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNsPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNode" id="xmlCopyNode"></a>Function: xmlCopyNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlCopyNode		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 int extended)<br />
 </pre><p>Do a copy of the node.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>recursive</tt></i>:</span></td><td>if 1 do a recursive copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNodeList" id="xmlCopyNodeList"></a>Function: xmlCopyNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlCopyNodeList		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>extended</tt></i>:</span></td><td>if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyNodeList" id="xmlCopyNodeList"></a>Function: xmlCopyNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlCopyNodeList		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node)<br />
 </pre><p>Do a recursive copy of the node list.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the first node in the list.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCopyProp" id="xmlCopyProp"></a>Function: xmlCopyProp</h3><pre class="programlisting"><a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a>	xmlCopyProp		(<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> target, <br />					 <a href="libxml-tree.html#xmlAttrPtr">xmlAttrPtr</a> cur)<br />
 </pre><p>Do a copy of the attribute.</p>
@@ -660,9 +660,9 @@
 </pre><p>Do a copy of an <a href="libxml-SAX.html#attribute">attribute</a> list.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>target</tt></i>:</span></td><td>the element where the attributes will be grafted</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the first <a href="libxml-SAX.html#attribute">attribute</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlAttrPtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlCreateIntSubset" id="xmlCreateIntSubset"></a>Function: xmlCreateIntSubset</h3><pre class="programlisting"><a href="libxml-tree.html#xmlDtdPtr">xmlDtdPtr</a>	xmlCreateIntSubset	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ExternalID, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * SystemID)<br />
 </pre><p>Create the internal subset of a document</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the DTD name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external (PUBLIC) ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new DTD structure</td></tr></tbody></table></div><h3><a name="xmlDocCopyNode" id="xmlDocCopyNode"></a>Function: xmlDocCopyNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlDocCopyNode		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 int recursive)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document pointer</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the DTD name</td></tr><tr><td><span class="term"><i><tt>ExternalID</tt></i>:</span></td><td>the external (PUBLIC) ID</td></tr><tr><td><span class="term"><i><tt>SystemID</tt></i>:</span></td><td>the system ID</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new DTD structure</td></tr></tbody></table></div><h3><a name="xmlDocCopyNode" id="xmlDocCopyNode"></a>Function: xmlDocCopyNode</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a>	xmlDocCopyNode		(const <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 int extended)<br />
 </pre><p>Do a copy of the node to a given document.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>recursive</tt></i>:</span></td><td>if 1 do a recursive copy.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlDocDump" id="xmlDocDump"></a>Function: xmlDocDump</h3><pre class="programlisting">int	xmlDocDump			(FILE * f, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>extended</tt></i>:</span></td><td>if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new #xmlNodePtr, or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlDocDump" id="xmlDocDump"></a>Function: xmlDocDump</h3><pre class="programlisting">int	xmlDocDump			(FILE * f, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur)<br />
 </pre><p>Dump an XML document to an open FILE.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the FILE*</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlDocDumpFormatMemory" id="xmlDocDumpFormatMemory"></a>Function: xmlDocDumpFormatMemory</h3><pre class="programlisting">void	xmlDocDumpFormatMemory		(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br />					 <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** mem, <br />					 int * size, <br />					 int format)<br />
 </pre><p>Dump an XML document in memory and return the #xmlChar * and it's size. It's up to the caller to free the memory with xmlFree(). Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</p>
@@ -831,8 +831,8 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename (or URL)</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSaveFormatFileEnc" id="xmlSaveFormatFileEnc"></a>Function: xmlSaveFormatFileEnc</h3><pre class="programlisting">int	xmlSaveFormatFileEnc		(const char * filename, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br />					 const char * encoding, <br />					 int format)<br />
 </pre><p>Dump an XML document to a file or an URL.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename or URL to output</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document being saved</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the name of the encoding to use or NULL.</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces be added.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of error. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</td></tr></tbody></table></div><h3><a name="xmlSaveFormatFileTo" id="xmlSaveFormatFileTo"></a>Function: xmlSaveFormatFileTo</h3><pre class="programlisting">int	xmlSaveFormatFileTo		(<a href="libxml-tree.html#xmlOutputBufferPtr">xmlOutputBufferPtr</a> buf, <br />					 <a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> cur, <br />					 const char * encoding, <br />					 int format)<br />
-</pre><p>Dump an XML document to an I/O buffer.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output I/O buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding if any assuming the I/O layer handles the trancoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure. Note that @format = 1 provide node indenting only if <a href="libxml-globals.html#xmlIndentTreeOutput">xmlIndentTreeOutput</a> = 1 or xmlKeepBlanksDefault(0) was called</td></tr></tbody></table></div><h3><a name="xmlSearchNs" id="xmlSearchNs"></a>Function: xmlSearchNs</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a>	xmlSearchNs		(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br />
+</pre><p>Dump an XML document to an I/O buffer. NOTE: the I/O buffer is closed as part of the call.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>an output I/O buffer</td></tr><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the encoding if any assuming the I/O layer handles the trancoding</td></tr><tr><td><span class="term"><i><tt>format</tt></i>:</span></td><td>should formatting spaces been added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of failure.</td></tr></tbody></table></div><h3><a name="xmlSearchNs" id="xmlSearchNs"></a>Function: xmlSearchNs</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a>	xmlSearchNs		(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * nameSpace)<br />
 </pre><p>Search a Ns registered under a given name space for a document. recurse on the parents until it finds the defined namespace or return NULL otherwise. @nameSpace can be NULL, this is a search for the default namespace. We don't allow to cross entities boundaries. If you don't declare the namespace within those you will be in troubles !!! A warning is generated to cover this case.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the current node</td></tr><tr><td><span class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the namespace prefix</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace pointer or NULL.</td></tr></tbody></table></div><h3><a name="xmlSearchNsByHref" id="xmlSearchNsByHref"></a>Function: xmlSearchNsByHref</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNsPtr">xmlNsPtr</a>	xmlSearchNsByHref	(<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc, <br />					 <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * href)<br />
 </pre><p>Search a Ns aliasing a given URI. Recurse on the parents until it finds the defined namespace or return NULL otherwise.</p>
diff --git a/doc/html/libxml-xmlwriter.html b/doc/html/libxml-xmlwriter.html
index c5f205d..458262c 100644
--- a/doc/html/libxml-xmlwriter.html
+++ b/doc/html/libxml-xmlwriter.html
@@ -10,7 +10,7 @@
 </style><style type="text/css">
       div.deprecated pre.programlisting {border-style: double;border-color:red}
       pre.programlisting {border-style: double;background: #EECFA1}
-    </style><title>Module xmlwriter from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module xmlwriter from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlversion.html">xmlversion</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xpath.html">xpath</a></th><td><a accesskey="n" href="libxml-xpath.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>text writing API for XML </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a></pre><pre class="programlisting">#define <a href="#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a></pre><pre class="programlisting">#define <a href="#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a></pre><pre class="programlisting">#define <a href="#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a></pre><pre class="programlisting">#define <a href="#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a></pre><pre class="programlisting">Structure <a href="#xmlTextWriter">xmlTextWriter</a><br />struct _xmlTextWriter
+    </style><title>Module xmlwriter from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module xmlwriter from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li><li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xmlversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-xmlversion.html">xmlversion</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-xpath.html">xpath</a></th><td><a accesskey="n" href="libxml-xpath.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>text writing API for XML </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#xmlTextWriterWriteDocType">xmlTextWriterWriteDocType</a></pre><pre class="programlisting">#define <a href="#xmlTextWriterWriteProcessingInstruction">xmlTextWriterWriteProcessingInstruction</a></pre><pre class="programlisting">Structure <a href="#xmlTextWriter">xmlTextWriter</a><br />struct _xmlTextWriter
 The content of this structure is not made public by the API.
 </pre><pre class="programlisting">Typedef <a href="libxml-xmlwriter.html#xmlTextWriter">xmlTextWriter</a> * <a name="xmlTextWriterPtr" id="xmlTextWriterPtr">xmlTextWriterPtr</a>
 </pre><pre class="programlisting">void	<a href="#xmlFreeTextWriter">xmlFreeTextWriter</a>		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
@@ -24,6 +24,9 @@
 <pre class="programlisting">int	<a href="#xmlTextWriterEndCDATA">xmlTextWriterEndCDATA</a>		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterEndComment">xmlTextWriterEndComment</a>		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a>		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int	<a href="#xmlTextWriterEndDTDAttlist">xmlTextWriterEndDTDAttlist</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int	<a href="#xmlTextWriterEndDTDElement">xmlTextWriterEndDTDElement</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
+<pre class="programlisting">int	<a href="#xmlTextWriterEndDTDEntity">xmlTextWriterEndDTDEntity</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterEndDocument">xmlTextWriterEndDocument</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterEndElement">xmlTextWriterEndElement</a>		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterEndPI">xmlTextWriterEndPI</a>		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)</pre>
@@ -54,6 +57,7 @@
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteDTDElement">xmlTextWriterWriteDTDElement</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteDTDEntity">xmlTextWriterWriteDTDEntity</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 int pe, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteDTDExternalEntity">xmlTextWriterWriteDTDExternalEntity</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />						 int pe, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)</pre>
+<pre class="programlisting">int	<a href="#xmlTextWriterWriteDTDExternalEntityContents">xmlTextWriterWriteDTDExternalEntityContents</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteDTDInternalEntity">xmlTextWriterWriteDTDInternalEntity</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />						 int pe, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteDTDNotation">xmlTextWriterWriteDTDNotation</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteElement">xmlTextWriterWriteElement</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)</pre>
@@ -89,9 +93,6 @@
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteVFormatRaw">xmlTextWriterWriteVFormatRaw</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 const char * format, <br />					 va_list argptr)</pre>
 <pre class="programlisting">int	<a href="#xmlTextWriterWriteVFormatString">xmlTextWriterWriteVFormatString</a>	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 const char * format, <br />					 va_list argptr)</pre>
 <h2>Description</h2>
-<h3><a name="xmlTextWriterEndDTDAttlist" id="xmlTextWriterEndDTDAttlist"></a>Macro: xmlTextWriterEndDTDAttlist</h3><pre>#define xmlTextWriterEndDTDAttlist</pre><p>This macro maps to <a href="libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a></p>
-<h3><a name="xmlTextWriterEndDTDElement" id="xmlTextWriterEndDTDElement"></a>Macro: xmlTextWriterEndDTDElement</h3><pre>#define xmlTextWriterEndDTDElement</pre><p>This macro maps to <a href="libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a></p>
-<h3><a name="xmlTextWriterEndDTDEntity" id="xmlTextWriterEndDTDEntity"></a>Macro: xmlTextWriterEndDTDEntity</h3><pre>#define xmlTextWriterEndDTDEntity</pre><p>This macro maps to <a href="libxml-xmlwriter.html#xmlTextWriterEndDTD">xmlTextWriterEndDTD</a></p>
 <h3><a name="xmlTextWriterWriteDocType" id="xmlTextWriterWriteDocType"></a>Macro: xmlTextWriterWriteDocType</h3><pre>#define xmlTextWriterWriteDocType</pre><p>this macro maps to <a href="libxml-xmlwriter.html#xmlTextWriterWriteDTD">xmlTextWriterWriteDTD</a></p>
 <h3><a name="xmlTextWriterWriteProcessingInstruction" id="xmlTextWriterWriteProcessingInstruction"></a>Macro: xmlTextWriterWriteProcessingInstruction</h3><pre>#define xmlTextWriterWriteProcessingInstruction</pre><p>This macro maps to <a href="libxml-xmlwriter.html#xmlTextWriterWritePI">xmlTextWriterWritePI</a></p>
 <h3><a name="xmlTextWriter" id="xmlTextWriter">Structure xmlTextWriter</a></h3><pre class="programlisting">Structure xmlTextWriter<br />struct _xmlTextWriter {
@@ -118,6 +119,12 @@
 </pre><p>End the current xml coment.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTD" id="xmlTextWriterEndDTD"></a>Function: xmlTextWriterEndDTD</h3><pre class="programlisting">int	xmlTextWriterEndDTD		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
 </pre><p>End an xml DTD.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTDAttlist" id="xmlTextWriterEndDTDAttlist"></a>Function: xmlTextWriterEndDTDAttlist</h3><pre class="programlisting">int	xmlTextWriterEndDTDAttlist	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml DTD <a href="libxml-SAX.html#attribute">attribute</a> list.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTDElement" id="xmlTextWriterEndDTDElement"></a>Function: xmlTextWriterEndDTDElement</h3><pre class="programlisting">int	xmlTextWriterEndDTDElement	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml DTD element.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDTDEntity" id="xmlTextWriterEndDTDEntity"></a>Function: xmlTextWriterEndDTDEntity</h3><pre class="programlisting">int	xmlTextWriterEndDTDEntity	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
+</pre><p>End an xml DTD entity.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndDocument" id="xmlTextWriterEndDocument"></a>Function: xmlTextWriterEndDocument</h3><pre class="programlisting">int	xmlTextWriterEndDocument	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
 </pre><p>End an xml document. All open elements are closed</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterEndElement" id="xmlTextWriterEndElement"></a>Function: xmlTextWriterEndElement</h3><pre class="programlisting">int	xmlTextWriterEndElement		(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer)<br />
@@ -177,8 +184,10 @@
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD element</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDEntity" id="xmlTextWriterWriteDTDEntity"></a>Function: xmlTextWriterWriteDTDEntity</h3><pre class="programlisting">int	xmlTextWriterWriteDTDEntity	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 int pe, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
 </pre><p>Write a DTD entity.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDExternalEntity" id="xmlTextWriterWriteDTDExternalEntity"></a>Function: xmlTextWriterWriteDTDExternalEntity</h3><pre class="programlisting">int	xmlTextWriterWriteDTDExternalEntity	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />						 int pe, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)<br />
-</pre><p>Write a DTD internal entity.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDInternalEntity" id="xmlTextWriterWriteDTDInternalEntity"></a>Function: xmlTextWriterWriteDTDInternalEntity</h3><pre class="programlisting">int	xmlTextWriterWriteDTDInternalEntity	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />						 int pe, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
+</pre><p>Write a DTD external entity. The entity must have been started with <a href="libxml-xmlwriter.html#xmlTextWriterStartDTDEntity">xmlTextWriterStartDTDEntity</a></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDExternalEntityContents" id="xmlTextWriterWriteDTDExternalEntityContents"></a>Function: xmlTextWriterWriteDTDExternalEntityContents</h3><pre class="programlisting">int	xmlTextWriterWriteDTDExternalEntityContents	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid, <br />							 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * ndataid)<br />
+</pre><p>Write the contents of a DTD external entity.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pubid</tt></i>:</span></td><td>the public identifier, which is an alternative to the system identifier</td></tr><tr><td><span class="term"><i><tt>sysid</tt></i>:</span></td><td>the system identifier, which is the URI of the DTD</td></tr><tr><td><span class="term"><i><tt>ndataid</tt></i>:</span></td><td>the xml notation name.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDInternalEntity" id="xmlTextWriterWriteDTDInternalEntity"></a>Function: xmlTextWriterWriteDTDInternalEntity</h3><pre class="programlisting">int	xmlTextWriterWriteDTDInternalEntity	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />						 int pe, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />						 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * content)<br />
 </pre><p>Write a DTD internal entity.</p>
 <div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>writer</tt></i>:</span></td><td>the <a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a></td></tr><tr><td><span class="term"><i><tt>pe</tt></i>:</span></td><td>TRUE if this is a parameter entity, FALSE if not</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the DTD entity</td></tr><tr><td><span class="term"><i><tt>content</tt></i>:</span></td><td>content of the entity</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the bytes written (may be 0 because of buffering) or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextWriterWriteDTDNotation" id="xmlTextWriterWriteDTDNotation"></a>Function: xmlTextWriterWriteDTDNotation</h3><pre class="programlisting">int	xmlTextWriterWriteDTDNotation	(<a href="libxml-xmlwriter.html#xmlTextWriterPtr">xmlTextWriterPtr</a> writer, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pubid, <br />					 const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * sysid)<br />
 </pre><p>Write a DTD entity.</p>
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index 1162e1a..3546b0c 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -2709,20 +2709,17 @@
      <description>text writing API for XML </description>
      <author>Alfred Mickautsch &lt;alfred@mickautsch.de&gt; </author>
      <exports symbol='xmlTextWriterWriteProcessingInstruction' type='macro'/>
-     <exports symbol='xmlTextWriterEndDTDEntity' type='macro'/>
-     <exports symbol='xmlTextWriterEndDTDElement' type='macro'/>
-     <exports symbol='xmlTextWriterEndDTDAttlist' type='macro'/>
      <exports symbol='xmlTextWriterWriteDocType' type='macro'/>
      <exports symbol='xmlTextWriter' type='typedef'/>
      <exports symbol='xmlTextWriterPtr' type='typedef'/>
      <exports symbol='xmlTextWriterStartDocument' type='function'/>
-     <exports symbol='xmlTextWriterEndDocument' type='function'/>
+     <exports symbol='xmlTextWriterEndPI' type='function'/>
      <exports symbol='xmlTextWriterWriteBase64' type='function'/>
      <exports symbol='xmlTextWriterSetIndentString' type='function'/>
      <exports symbol='xmlTextWriterStartAttribute' type='function'/>
      <exports symbol='xmlTextWriterEndComment' type='function'/>
      <exports symbol='xmlTextWriterWriteRawLen' type='function'/>
-     <exports symbol='xmlTextWriterWriteVFormatDTD' type='function'/>
+     <exports symbol='xmlTextWriterWriteDTDExternalEntityContents' type='function'/>
      <exports symbol='xmlTextWriterWriteVFormatCDATA' type='function'/>
      <exports symbol='xmlTextWriterStartAttributeNS' type='function'/>
      <exports symbol='xmlNewTextWriterPushParser' type='function'/>
@@ -2734,10 +2731,11 @@
      <exports symbol='xmlTextWriterSetIndent' type='function'/>
      <exports symbol='xmlTextWriterWriteFormatPI' type='function'/>
      <exports symbol='xmlTextWriterWriteDTDAttlist' type='function'/>
-     <exports symbol='xmlTextWriterEndPI' type='function'/>
      <exports symbol='xmlTextWriterStartComment' type='function'/>
+     <exports symbol='xmlTextWriterWriteVFormatDTD' type='function'/>
      <exports symbol='xmlTextWriterEndCDATA' type='function'/>
      <exports symbol='xmlTextWriterStartElementNS' type='function'/>
+     <exports symbol='xmlTextWriterEndDTDEntity' type='function'/>
      <exports symbol='xmlNewTextWriter' type='function'/>
      <exports symbol='xmlFreeTextWriter' type='function'/>
      <exports symbol='xmlTextWriterWriteVFormatDTDAttlist' type='function'/>
@@ -2745,9 +2743,11 @@
      <exports symbol='xmlTextWriterStartElement' type='function'/>
      <exports symbol='xmlTextWriterWriteDTDExternalEntity' type='function'/>
      <exports symbol='xmlTextWriterWriteFormatRaw' type='function'/>
+     <exports symbol='xmlTextWriterWritePI' type='function'/>
      <exports symbol='xmlTextWriterWriteCDATA' type='function'/>
      <exports symbol='xmlTextWriterWriteVFormatDTDInternalEntity' type='function'/>
      <exports symbol='xmlTextWriterWriteVFormatAttribute' type='function'/>
+     <exports symbol='xmlTextWriterEndDTDElement' type='function'/>
      <exports symbol='xmlTextWriterWriteComment' type='function'/>
      <exports symbol='xmlTextWriterWriteElement' type='function'/>
      <exports symbol='xmlTextWriterEndElement' type='function'/>
@@ -2757,9 +2757,9 @@
      <exports symbol='xmlTextWriterWriteVFormatElement' type='function'/>
      <exports symbol='xmlTextWriterWriteFormatComment' type='function'/>
      <exports symbol='xmlTextWriterWriteAttributeNS' type='function'/>
-     <exports symbol='xmlTextWriterWritePI' type='function'/>
-     <exports symbol='xmlTextWriterWriteVFormatRaw' type='function'/>
      <exports symbol='xmlTextWriterWriteFormatDTDInternalEntity' type='function'/>
+     <exports symbol='xmlTextWriterWriteVFormatRaw' type='function'/>
+     <exports symbol='xmlTextWriterEndDocument' type='function'/>
      <exports symbol='xmlTextWriterWriteVFormatString' type='function'/>
      <exports symbol='xmlTextWriterWriteDTDInternalEntity' type='function'/>
      <exports symbol='xmlTextWriterWriteVFormatElementNS' type='function'/>
@@ -2774,6 +2774,7 @@
      <exports symbol='xmlTextWriterWriteAttribute' type='function'/>
      <exports symbol='xmlNewTextWriterDoc' type='function'/>
      <exports symbol='xmlTextWriterWriteFormatDTDElement' type='function'/>
+     <exports symbol='xmlTextWriterEndDTDAttlist' type='function'/>
      <exports symbol='xmlNewTextWriterTree' type='function'/>
      <exports symbol='xmlNewTextWriterMemory' type='function'/>
      <exports symbol='xmlTextWriterWriteFormatCDATA' type='function'/>
@@ -3550,15 +3551,6 @@
     <macro name='xmlRootNode' file='tree'>
       <info>Macro for compatibility naming layer with libxml1. Maps to &quot;children&quot;.</info>
     </macro>
-    <macro name='xmlTextWriterEndDTDAttlist' file='xmlwriter'>
-      <info>This macro maps to xmlTextWriterEndDTD</info>
-    </macro>
-    <macro name='xmlTextWriterEndDTDElement' file='xmlwriter'>
-      <info>This macro maps to xmlTextWriterEndDTD</info>
-    </macro>
-    <macro name='xmlTextWriterEndDTDEntity' file='xmlwriter'>
-      <info>This macro maps to xmlTextWriterEndDTD</info>
-    </macro>
     <macro name='xmlTextWriterWriteDocType' file='xmlwriter'>
       <info>this macro maps to xmlTextWriterWriteDTD</info>
     </macro>
@@ -7227,7 +7219,7 @@
       <info>Do a copy of the document info. If recursive, the content tree will be copied too as well as DTD, namespaces and entities.</info>
       <return type='xmlDocPtr' info='a new #xmlDocPtr, or NULL in case of error.'/>
       <arg name='doc' type='xmlDocPtr' info='the document'/>
-      <arg name='recursive' type='int' info='if 1 do a recursive copy.'/>
+      <arg name='recursive' type='int' info='if not zero do a recursive copy.'/>
     </function>
     <function name='xmlCopyDtd' file='tree'>
       <info>Do a copy of the dtd.</info>
@@ -7274,7 +7266,7 @@
       <info>Do a copy of the node.</info>
       <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
       <arg name='node' type='const xmlNodePtr' info='the node'/>
-      <arg name='recursive' type='int' info='if 1 do a recursive copy.'/>
+      <arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
     </function>
     <function name='xmlCopyNodeList' file='tree'>
       <info>Do a recursive copy of the node list.</info>
@@ -7599,7 +7591,7 @@
       <return type='xmlNodePtr' info='a new #xmlNodePtr, or NULL in case of error.'/>
       <arg name='node' type='const xmlNodePtr' info='the node'/>
       <arg name='doc' type='xmlDocPtr' info='the document'/>
-      <arg name='recursive' type='int' info='if 1 do a recursive copy.'/>
+      <arg name='extended' type='int' info='if 1 do a recursive copy (properties, namespaces and children when applicable) if 2 copy properties and namespaces (when applicable)'/>
     </function>
     <function name='xmlDocDump' file='tree'>
       <info>Dump an XML document to an open FILE.</info>
@@ -10989,8 +10981,8 @@
       <arg name='format' type='int' info='should formatting spaces be added.'/>
     </function>
     <function name='xmlSaveFormatFileTo' file='tree'>
-      <info>Dump an XML document to an I/O buffer.</info>
-      <return type='int' info='the number of bytes written or -1 in case of failure. Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 or xmlKeepBlanksDefault(0) was called'/>
+      <info>Dump an XML document to an I/O buffer. NOTE: the I/O buffer is closed as part of the call.</info>
+      <return type='int' info='the number of bytes written or -1 in case of failure.'/>
       <arg name='buf' type='xmlOutputBufferPtr' info='an output I/O buffer'/>
       <arg name='cur' type='xmlDocPtr' info='the document'/>
       <arg name='encoding' type='const char *' info='the encoding if any assuming the I/O layer handles the trancoding'/>
@@ -12015,6 +12007,21 @@
       <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
       <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
     </function>
+    <function name='xmlTextWriterEndDTDAttlist' file='xmlwriter'>
+      <info>End an xml DTD attribute list.</info>
+      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+    </function>
+    <function name='xmlTextWriterEndDTDElement' file='xmlwriter'>
+      <info>End an xml DTD element.</info>
+      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+    </function>
+    <function name='xmlTextWriterEndDTDEntity' file='xmlwriter'>
+      <info>End an xml DTD entity.</info>
+      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+    </function>
     <function name='xmlTextWriterEndDocument' file='xmlwriter'>
       <info>End an xml document. All open elements are closed</info>
       <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
@@ -12210,7 +12217,7 @@
       <arg name='content' type='const xmlChar *' info='content of the entity'/>
     </function>
     <function name='xmlTextWriterWriteDTDExternalEntity' file='xmlwriter'>
-      <info>Write a DTD internal entity.</info>
+      <info>Write a DTD external entity. The entity must have been started with xmlTextWriterStartDTDEntity</info>
       <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
       <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
       <arg name='pe' type='int' info='TRUE if this is a parameter entity, FALSE if not'/>
@@ -12219,6 +12226,14 @@
       <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
       <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
     </function>
+    <function name='xmlTextWriterWriteDTDExternalEntityContents' file='xmlwriter'>
+      <info>Write the contents of a DTD external entity.</info>
+      <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
+      <arg name='writer' type='xmlTextWriterPtr' info='the xmlTextWriterPtr'/>
+      <arg name='pubid' type='const xmlChar *' info='the public identifier, which is an alternative to the system identifier'/>
+      <arg name='sysid' type='const xmlChar *' info='the system identifier, which is the URI of the DTD'/>
+      <arg name='ndataid' type='const xmlChar *' info='the xml notation name.'/>
+    </function>
     <function name='xmlTextWriterWriteDTDInternalEntity' file='xmlwriter'>
       <info>Write a DTD internal entity.</info>
       <return type='int' info='the bytes written (may be 0 because of buffering) or -1 in case of error'/>
diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml
index 0bdf8a4..da0f2e2 100644
--- a/doc/libxml2-refs.xml
+++ b/doc/libxml2-refs.xml
@@ -2350,6 +2350,7 @@
     <reference name='xmlTextWriterWriteDTDElement' href='html/libxml-xmlwriter.html#xmlTextWriterWriteDTDElement'/>
     <reference name='xmlTextWriterWriteDTDEntity' href='html/libxml-xmlwriter.html#xmlTextWriterWriteDTDEntity'/>
     <reference name='xmlTextWriterWriteDTDExternalEntity' href='html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntity'/>
+    <reference name='xmlTextWriterWriteDTDExternalEntityContents' href='html/libxml-xmlwriter.html#xmlTextWriterWriteDTDExternalEntityContents'/>
     <reference name='xmlTextWriterWriteDTDInternalEntity' href='html/libxml-xmlwriter.html#xmlTextWriterWriteDTDInternalEntity'/>
     <reference name='xmlTextWriterWriteDTDNotation' href='html/libxml-xmlwriter.html#xmlTextWriterWriteDTDNotation'/>
     <reference name='xmlTextWriterWriteDocType' href='html/libxml-xmlwriter.html#xmlTextWriterWriteDocType'/>
@@ -5264,6 +5265,7 @@
       <ref name='xmlTextWriterWriteDTDElement'/>
       <ref name='xmlTextWriterWriteDTDEntity'/>
       <ref name='xmlTextWriterWriteDTDExternalEntity'/>
+      <ref name='xmlTextWriterWriteDTDExternalEntityContents'/>
       <ref name='xmlTextWriterWriteDTDInternalEntity'/>
       <ref name='xmlTextWriterWriteDTDNotation'/>
       <ref name='xmlTextWriterWriteDocType'/>
@@ -6868,6 +6870,7 @@
       <ref name='xmlTextWriterWriteDTDElement'/>
       <ref name='xmlTextWriterWriteDTDEntity'/>
       <ref name='xmlTextWriterWriteDTDExternalEntity'/>
+      <ref name='xmlTextWriterWriteDTDExternalEntityContents'/>
       <ref name='xmlTextWriterWriteDTDInternalEntity'/>
       <ref name='xmlTextWriterWriteDTDNotation'/>
       <ref name='xmlTextWriterWriteElement'/>
@@ -8624,6 +8627,9 @@
       <ref name='xmlTextWriterEndCDATA'/>
       <ref name='xmlTextWriterEndComment'/>
       <ref name='xmlTextWriterEndDTD'/>
+      <ref name='xmlTextWriterEndDTDAttlist'/>
+      <ref name='xmlTextWriterEndDTDElement'/>
+      <ref name='xmlTextWriterEndDTDEntity'/>
       <ref name='xmlTextWriterEndDocument'/>
       <ref name='xmlTextWriterEndElement'/>
       <ref name='xmlTextWriterEndPI'/>
@@ -8654,6 +8660,7 @@
       <ref name='xmlTextWriterWriteDTDElement'/>
       <ref name='xmlTextWriterWriteDTDEntity'/>
       <ref name='xmlTextWriterWriteDTDExternalEntity'/>
+      <ref name='xmlTextWriterWriteDTDExternalEntityContents'/>
       <ref name='xmlTextWriterWriteDTDInternalEntity'/>
       <ref name='xmlTextWriterWriteDTDNotation'/>
       <ref name='xmlTextWriterWriteElement'/>
@@ -11493,6 +11500,7 @@
       <ref name='xmlTextWriterWriteDTDElement'/>
       <ref name='xmlTextWriterWriteDTDEntity'/>
       <ref name='xmlTextWriterWriteDTDExternalEntity'/>
+      <ref name='xmlTextWriterWriteDTDExternalEntityContents'/>
       <ref name='xmlTextWriterWriteDTDInternalEntity'/>
       <ref name='xmlTextWriterWriteDTDNotation'/>
       <ref name='xmlTextWriterWriteDocType'/>
@@ -13003,6 +13011,9 @@
           <ref name='xmlTextWriterEndCDATA'/>
           <ref name='xmlTextWriterEndComment'/>
           <ref name='xmlTextWriterEndDTD'/>
+          <ref name='xmlTextWriterEndDTDAttlist'/>
+          <ref name='xmlTextWriterEndDTDElement'/>
+          <ref name='xmlTextWriterEndDTDEntity'/>
           <ref name='xmlTextWriterEndDocument'/>
           <ref name='xmlTextWriterEndElement'/>
           <ref name='xmlTextWriterEndPI'/>
@@ -13992,6 +14003,7 @@
           <ref name='xmlParseExternalID'/>
           <ref name='xmlParsePEReference'/>
           <ref name='xmlParserHandlePEReference'/>
+          <ref name='xmlSaveFormatFileTo'/>
           <ref name='xmlTextReaderCurrentDoc'/>
         </word>
         <word name='NRK'>
@@ -14136,7 +14148,6 @@
           <ref name='xmlSAXDefaultVersion'/>
           <ref name='xmlSaveFormatFile'/>
           <ref name='xmlSaveFormatFileEnc'/>
-          <ref name='xmlSaveFormatFileTo'/>
           <ref name='xmlTextReaderSetParserProp'/>
         </word>
         <word name='Note:'>
@@ -16232,6 +16243,7 @@
           <ref name='xmlTextWriterWriteDTD'/>
           <ref name='xmlTextWriterWriteDTDEntity'/>
           <ref name='xmlTextWriterWriteDTDExternalEntity'/>
+          <ref name='xmlTextWriterWriteDTDExternalEntityContents'/>
           <ref name='xmlTextWriterWriteDTDNotation'/>
           <ref name='xmlTextWriterWriteFormatDTD'/>
           <ref name='xmlTextWriterWriteVFormatDTD'/>
@@ -16353,6 +16365,10 @@
         <word name='appendix'>
           <ref name='xmlDetectCharEncoding'/>
         </word>
+        <word name='applicable'>
+          <ref name='xmlCopyNode'/>
+          <ref name='xmlDocCopyNode'/>
+        </word>
         <word name='application'>
           <ref name='_xmlAttr'/>
           <ref name='_xmlAttribute'/>
@@ -16849,6 +16865,7 @@
           <ref name='xmlParseReference'/>
           <ref name='xmlSAXUserParseFile'/>
           <ref name='xmlSAXUserParseMemory'/>
+          <ref name='xmlSaveFormatFileTo'/>
           <ref name='xmlSetEntityReferenceFunc'/>
           <ref name='xmlTextReaderCurrentDoc'/>
           <ref name='xmlTextReaderExpand'/>
@@ -17144,36 +17161,6 @@
           <ref name='_xmlDtd'/>
           <ref name='_xmlNode'/>
         </word>
-        <word name='children'>
-          <ref name='htmlAutoCloseTag'/>
-          <ref name='htmlNodeDump'/>
-          <ref name='htmlNodeDumpFile'/>
-          <ref name='htmlNodeDumpFileFormat'/>
-          <ref name='htmlNodeDumpFormatOutput'/>
-          <ref name='htmlNodeDumpOutput'/>
-          <ref name='xmlAddChild'/>
-          <ref name='xmlAddNextSibling'/>
-          <ref name='xmlAddPrevSibling'/>
-          <ref name='xmlChildrenNode'/>
-          <ref name='xmlDocGetRootElement'/>
-          <ref name='xmlDocSetRootElement'/>
-          <ref name='xmlElemDump'/>
-          <ref name='xmlFreeNode'/>
-          <ref name='xmlFreeNodeList'/>
-          <ref name='xmlFreePropList'/>
-          <ref name='xmlLsCountNode'/>
-          <ref name='xmlNewChild'/>
-          <ref name='xmlNewTextChild'/>
-          <ref name='xmlNewTextWriterTree'/>
-          <ref name='xmlNodeDump'/>
-          <ref name='xmlNodeDumpOutput'/>
-          <ref name='xmlParseElementChildrenContentDecl'/>
-          <ref name='xmlParseElementContentDecl'/>
-          <ref name='xmlRootNode'/>
-          <ref name='xmlValidGetPotentialChildren'/>
-          <ref name='xmlValidGetValidElements'/>
-          <ref name='xmlXPathNextChild'/>
-        </word>
         <word name='childrens'>
           <ref name='_xmlEntity'/>
         </word>
@@ -17248,6 +17235,7 @@
           <ref name='xmlReadFd'/>
           <ref name='xmlReaderForFd'/>
           <ref name='xmlReaderNewFd'/>
+          <ref name='xmlSaveFormatFileTo'/>
           <ref name='xmlTextWriterEndDocument'/>
         </word>
         <word name='closes'>
@@ -17725,6 +17713,7 @@
           <ref name='xmlTextReaderReadInnerXml'/>
           <ref name='xmlTextReaderReadOuterXml'/>
           <ref name='xmlTextReaderReadString'/>
+          <ref name='xmlTextWriterWriteDTDExternalEntityContents'/>
         </word>
         <word name='contentspec'>
           <ref name='xmlParseElementContentDecl'/>
@@ -19921,6 +19910,7 @@
           <ref name='xmlStrEqual'/>
           <ref name='xmlTextReaderHasValue'/>
           <ref name='xmlTextReaderReadAttributeValue'/>
+          <ref name='xmlTextWriterWriteDTDExternalEntity'/>
           <ref name='xmlValidateDocumentFinal'/>
           <ref name='xmlValidateDtdFinal'/>
           <ref name='xmlXPathIdFunction'/>
@@ -20298,7 +20288,6 @@
           <ref name='xmlNodeDumpOutput'/>
           <ref name='xmlSaveFormatFile'/>
           <ref name='xmlSaveFormatFileEnc'/>
-          <ref name='xmlSaveFormatFileTo'/>
         </word>
         <word name='independently'>
           <ref name='xmlGetProp'/>
@@ -21206,9 +21195,6 @@
           <ref name='xmlCheckFilename'/>
         </word>
         <word name='macro'>
-          <ref name='xmlTextWriterEndDTDAttlist'/>
-          <ref name='xmlTextWriterEndDTDElement'/>
-          <ref name='xmlTextWriterEndDTDEntity'/>
           <ref name='xmlTextWriterWriteDocType'/>
           <ref name='xmlTextWriterWriteProcessingInstruction'/>
         </word>
@@ -21279,9 +21265,6 @@
         </word>
         <word name='maps'>
           <ref name='xmlTextReaderLookupNamespace'/>
-          <ref name='xmlTextWriterEndDTDAttlist'/>
-          <ref name='xmlTextWriterEndDTDElement'/>
-          <ref name='xmlTextWriterEndDTDEntity'/>
           <ref name='xmlTextWriterWriteDocType'/>
           <ref name='xmlTextWriterWriteProcessingInstruction'/>
         </word>
@@ -21643,6 +21626,8 @@
           <ref name='xmlC14NDocSaveTo'/>
           <ref name='xmlC14NExecute'/>
           <ref name='xmlCopyDoc'/>
+          <ref name='xmlCopyNode'/>
+          <ref name='xmlDocCopyNode'/>
           <ref name='xmlFreeNsList'/>
           <ref name='xmlGetProp'/>
           <ref name='xmlReconciliateNs'/>
@@ -22941,6 +22926,8 @@
           <ref name='xmlAddChild'/>
           <ref name='xmlAddNextSibling'/>
           <ref name='xmlAddPrevSibling'/>
+          <ref name='xmlCopyNode'/>
+          <ref name='xmlDocCopyNode'/>
           <ref name='xmlTextReaderRead'/>
           <ref name='xmlTextReaderSetParserProp'/>
         </word>
@@ -22983,7 +22970,6 @@
           <ref name='xmlOutputMatchCallback'/>
           <ref name='xmlSaveFormatFile'/>
           <ref name='xmlSaveFormatFileEnc'/>
-          <ref name='xmlSaveFormatFileTo'/>
           <ref name='xmlSchemaValidateStream'/>
           <ref name='xmlUTF8Strloc'/>
           <ref name='xmlUTF8Strpos'/>
@@ -24543,6 +24529,9 @@
           <ref name='xmlParseElement'/>
           <ref name='xmlParseStartTag'/>
         </word>
+        <word name='started'>
+          <ref name='xmlTextWriterWriteDTDExternalEntity'/>
+        </word>
         <word name='starting'>
           <ref name='xmlAutomataNewAllTrans'/>
           <ref name='xmlAutomataNewCountTrans'/>
@@ -26441,7 +26430,6 @@
           <ref name='xmlNodeDumpOutput'/>
           <ref name='xmlSaveFormatFile'/>
           <ref name='xmlSaveFormatFileEnc'/>
-          <ref name='xmlSaveFormatFileTo'/>
         </word>
         <word name='xmlInitParser'>
           <ref name='htmlInitAutoClose'/>
@@ -26523,7 +26511,6 @@
           <ref name='xmlNodeDumpOutput'/>
           <ref name='xmlSaveFormatFile'/>
           <ref name='xmlSaveFormatFileEnc'/>
-          <ref name='xmlSaveFormatFileTo'/>
         </word>
         <word name='xmlLineNumbersDefault'>
           <ref name='xmlGetLineNo'/>
@@ -26885,10 +26872,8 @@
         <word name='xmlTextReaderRead'>
           <ref name='xmlTextReaderExpand'/>
         </word>
-        <word name='xmlTextWriterEndDTD'>
-          <ref name='xmlTextWriterEndDTDAttlist'/>
-          <ref name='xmlTextWriterEndDTDElement'/>
-          <ref name='xmlTextWriterEndDTDEntity'/>
+        <word name='xmlTextWriterStartDTDEntity'>
+          <ref name='xmlTextWriterWriteDTDExternalEntity'/>
         </word>
         <word name='xmlTextWriterWriteDTD'>
           <ref name='xmlTextWriterWriteDocType'/>
@@ -27070,6 +27055,7 @@
           <ref name='xmlBufferCCat'/>
           <ref name='xmlBufferCat'/>
           <ref name='xmlByteConsumed'/>
+          <ref name='xmlCopyDoc'/>
           <ref name='xmlCtxtReadDoc'/>
           <ref name='xmlDocDumpMemory'/>
           <ref name='xmlOutputBufferWriteString'/>