<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
TD {font-family: Verdana,Arial,Helvetica}
BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
H1 {font-family: Verdana,Arial,Helvetica}
H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>Upgrading 1.x code</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>The XML C parser and toolkit of Gnome</h1><h2>Upgrading 1.x code</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>Developer 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 href="index.html" style="font-weight:bold">Main Menu</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="tutorial/index.html">Tutorial</a></li><li><a href="xmlreader.html">The Reader Interface</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="python.html">Python and bindings</a></li><li><a href="architecture.html">libxml2 architecture</a></li><li><a href="tree.html">The tree output</a></li><li><a href="interface.html">The SAX interface</a></li><li><a href="xmlmem.html">Memory Management</a></li><li><a href="xmlio.html">I/O Interfaces</a></li><li><a href="library.html">The parser interfaces</a></li><li><a href="entities.html">Entities or no entities</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="upgrade.html">Upgrading 1.x code</a></li><li><a href="threads.html">Thread safety</a></li><li><a href="DOM.html">DOM Principles</a></li><li><a href="example.html">A real example</a></li><li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</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"><p>Incompatible changes:</p><p>Version 2 of libxml2 is the first version introducing serious backward
incompatible changes. The main goals were:</p><ul><li>a general cleanup. A number of mistakes inherited from the very early
    versions couldn't be changed due to compatibility constraints. Example
    the "childs" element in the nodes.</li>
  <li>Uniformization of the various nodes, at least for their header and link
    parts (doc, parent, children, prev, next), the goal is a simpler
    programming model and simplifying the task of the DOM implementors.</li>
  <li>better conformances to the XML specification, for example version 1.x
    had an heuristic to try to detect ignorable white spaces. As a result the
    SAX event generated were ignorableWhitespace() while the spec requires
    character() in that case. This also mean that a number of DOM node
    containing blank text may populate the DOM tree which were not present
    before.</li>
</ul><h3>How to fix libxml-1.x code:</h3><p>So client code of libxml designed to run with version 1.x may have to be
changed to compile against version 2.x of libxml. Here is a list of changes
that I have collected, they may not be sufficient, so in case you find other
change which are required, <a href="mailto:Daniel.Veillard@w3.org">drop me a
mail</a>:</p><ol><li>The package name have changed from libxml to libxml2, the library name
    is now -lxml2 . There is a new xml2-config script which should be used to
    select the right parameters libxml2</li>
  <li>Node <strong>childs</strong> field has been renamed
    <strong>children</strong> so s/childs/children/g should be  applied
    (probability of having "childs" anywhere else is close to 0+</li>
  <li>The document don't have anymore a <strong>root</strong> element it has
    been replaced by <strong>children</strong> and usually you will get a
    list of element here. For example a Dtd element for the internal subset
    and it's declaration may be found in that list, as well as processing
    instructions or comments found before or after the document root element.
    Use <strong>xmlDocGetRootElement(doc)</strong> to get the root element of
    a document. Alternatively if you are sure to not reference DTDs nor have
    PIs or comments before or after the root element
    s/-&gt;root/-&gt;children/g will probably do it.</li>
  <li>The white space issue, this one is more complex, unless special case of
    validating parsing, the line breaks and spaces usually used for indenting
    and formatting the document content becomes significant. So they are
    reported by SAX and if your using the DOM tree, corresponding nodes are
    generated. Too approach can be taken:
    <ol><li>lazy one, use the compatibility call
        <strong>xmlKeepBlanksDefault(0)</strong> but be aware that you are
        relying on a special (and possibly broken) set of heuristics of
        libxml to detect ignorable blanks. Don't complain if it breaks or
        make your application not 100% clean w.r.t. to it's input.</li>
      <li>the Right Way: change you code to accept possibly insignificant
        blanks characters, or have your tree populated with weird blank text
        nodes. You can spot them using the commodity function
        <strong>xmlIsBlankNode(node)</strong> returning 1 for such blank
        nodes.</li>
    </ol><p>Note also that with the new default the output functions don't add any
    extra indentation when saving a tree in order to be able to round trip
    (read and save) without inflating the document with extra formatting
    chars.</p>
  </li>
  <li>The include path has changed to $prefix/libxml/ and the includes
    themselves uses this new prefix in includes instructions... If you are
    using (as expected) the
    <pre>xml2-config --cflags</pre>
    <p>output to generate you compile commands this will probably work out of
    the box</p>
  </li>
  <li>xmlDetectCharEncoding takes an extra argument indicating the length in
    byte of the head of the document available for character detection.</li>
</ol><h3>Ensuring both libxml-1.x and libxml-2.x compatibility</h3><p>Two new version of libxml (1.8.11) and libxml2 (2.3.4) have been released
to allow smooth upgrade of existing libxml v1code while retaining
compatibility. They offers the following:</p><ol><li>similar include naming, one should use
    <strong>#include&lt;libxml/...&gt;</strong> in both cases.</li>
  <li>similar identifiers defined via macros for the child and root fields:
    respectively <strong>xmlChildrenNode</strong> and
    <strong>xmlRootNode</strong></li>
  <li>a new macro <strong>LIBXML_TEST_VERSION</strong> which should be
    inserted once in the client code</li>
</ol><p>So the roadmap to upgrade your existing libxml applications is the
following:</p><ol><li>install the  libxml-1.8.8 (and libxml-devel-1.8.8) packages</li>
  <li>find all occurrences where the xmlDoc <strong>root</strong> field is
    used and change it to <strong>xmlRootNode</strong></li>
  <li>similarly find all occurrences where the xmlNode
    <strong>childs</strong> field is used and change it to
    <strong>xmlChildrenNode</strong></li>
  <li>add a <strong>LIBXML_TEST_VERSION</strong> macro somewhere in your
    <strong>main()</strong> or in the library init entry point</li>
  <li>Recompile, check compatibility, it should still work</li>
  <li>Change your configure script to look first for xml2-config and fall
    back using xml-config . Use the --cflags and --libs output of the command
    as the Include and Linking parameters needed to use libxml.</li>
  <li>install libxml2-2.3.x and  libxml2-devel-2.3.x (libxml-1.8.y and
    libxml-devel-1.8.y can be kept simultaneously)</li>
  <li>remove your config.cache, relaunch your configuration mechanism, and
    recompile, if steps 2 and 3 were done right it should compile as-is</li>
  <li>Test that your application is still running correctly, if not this may
    be due to extra empty nodes due to formating spaces being kept in libxml2
    contrary to libxml1, in that case insert xmlKeepBlanksDefault(1) in your
    code before calling the parser (next to
    <strong>LIBXML_TEST_VERSION</strong> is a fine place).</li>
</ol><p>Following those steps should work. It worked for some of my own code.</p><p>Let me put some emphasis on the fact that there is far more changes from
libxml 1.x to 2.x than the ones you may have to patch for. The overall code
has been considerably cleaned up and the conformance to the XML specification
has been drastically improved too. Don't take those changes as an excuse to
not upgrade, it may cost a lot on the long term ...</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
