tree.html revision 373a4758b7139b5605f51a1f9dbc74bffe7b5151
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> 2<html> 3<head> 4<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"> 5<style type="text/css"><!-- 6TD {font-family: Verdana,Arial,Helvetica} 7BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em} 8H1 {font-family: Verdana,Arial,Helvetica} 9H2 {font-family: Verdana,Arial,Helvetica} 10H3 {font-family: Verdana,Arial,Helvetica} 11A:link, A:visited, A:active { text-decoration: underline } 12--></style> 13<title>The tree output</title> 14</head> 15<body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000"> 16<table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr> 17<td width="180"> 18<a href="http://www.gnome.org/"><img src="smallfootonly.gif" alt="Gnome 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> 19</td> 20<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"> 21<h1>The XML C library for Gnome</h1> 22<h2>The tree output</h2> 23</td></tr></table></td></tr></table></td> 24</tr></table> 25<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> 26<td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td> 27<table width="100%" border="0" cellspacing="1" cellpadding="3"> 28<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr> 29<tr><td bgcolor="#fffacd"><ul> 30<li><a href="index.html">Home</a></li> 31<li><a href="intro.html">Introduction</a></li> 32<li><a href="FAQ.html">FAQ</a></li> 33<li><a href="docs.html">Documentation</a></li> 34<li><a href="bugs.html">Reporting bugs and getting help</a></li> 35<li><a href="help.html">How to help</a></li> 36<li><a href="downloads.html">Downloads</a></li> 37<li><a href="news.html">News</a></li> 38<li><a href="XMLinfo.html">XML</a></li> 39<li><a href="XSLT.html">XSLT</a></li> 40<li><a href="python.html">Python and bindings</a></li> 41<li><a href="architecture.html">libxml architecture</a></li> 42<li><a href="tree.html">The tree output</a></li> 43<li><a href="interface.html">The SAX interface</a></li> 44<li><a href="xmldtd.html">Validation & DTDs</a></li> 45<li><a href="xmlmem.html">Memory Management</a></li> 46<li><a href="encoding.html">Encodings support</a></li> 47<li><a href="xmlio.html">I/O Interfaces</a></li> 48<li><a href="catalog.html">Catalog support</a></li> 49<li><a href="library.html">The parser interfaces</a></li> 50<li><a href="entities.html">Entities or no entities</a></li> 51<li><a href="namespaces.html">Namespaces</a></li> 52<li><a href="upgrade.html">Upgrading 1.x code</a></li> 53<li><a href="threads.html">Thread safety</a></li> 54<li><a href="DOM.html">DOM Principles</a></li> 55<li><a href="example.html">A real example</a></li> 56<li><a href="contribs.html">Contributions</a></li> 57<li> 58<a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a> 59</li> 60</ul></td></tr> 61</table> 62<table width="100%" border="0" cellspacing="1" cellpadding="3"> 63<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr> 64<tr><td bgcolor="#fffacd"><ul> 65<li><a href="APIchunk0.html">Alphabetic</a></li> 66<li><a href="APIconstructors.html">Constructors</a></li> 67<li><a href="APIfunctions.html">Functions/Types</a></li> 68<li><a href="APIfiles.html">Modules</a></li> 69<li><a href="APIsymbols.html">Symbols</a></li> 70</ul></td></tr> 71</table> 72<table width="100%" border="0" cellspacing="1" cellpadding="3"> 73<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr> 74<tr><td bgcolor="#fffacd"><ul> 75<li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li> 76<li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li> 77<li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li> 78<li><a href="ftp://xmlsoft.org/">FTP</a></li> 79<li><a href="http://www.fh-frankfurt.de/~igor/projects/libxml/">Windows binaries</a></li> 80<li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li> 81<li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml">Bug Tracker</a></li> 82</ul></td></tr> 83</table> 84</td></tr></table></td> 85<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"> 86<p>The parser returns a tree built during the document analysis. The value 87returned is an <strong>xmlDocPtr</strong> (i.e., a pointer to an 88<strong>xmlDoc</strong> structure). This structure contains information such 89as the file name, the document type, and a <strong>children</strong> pointer 90which is the root of the document (or more exactly the first child under the 91root which is the document). The tree is made of <strong>xmlNode</strong>s, 92chained in double-linked lists of siblings and with a children<->parent 93relationship. An xmlNode can also carry properties (a chain of xmlAttr 94structures). An attribute may have a value which is a list of TEXT or 95ENTITY_REF nodes.</p> 96<p>Here is an example (erroneous with respect to the XML spec since there 97should be only one ELEMENT under the root):</p> 98<p><img src="structure.gif" alt=" structure.gif "></p> 99<p>In the source package there is a small program (not installed by default) 100called <strong>xmllint</strong> which parses XML files given as argument and 101prints them back as parsed. This is useful for detecting errors both in XML 102code and in the XML parser itself. It has an option <strong>--debug</strong> 103which prints the actual in-memory structure of the document; here is the 104result with the <a href="#example">example</a> given before:</p> 105<pre>DOCUMENT 106version=1.0 107standalone=true 108 ELEMENT EXAMPLE 109 ATTRIBUTE prop1 110 TEXT 111 content=gnome is great 112 ATTRIBUTE prop2 113 ENTITY_REF 114 TEXT 115 content= linux too 116 ELEMENT head 117 ELEMENT title 118 TEXT 119 content=Welcome to Gnome 120 ELEMENT chapter 121 ELEMENT title 122 TEXT 123 content=The Linux adventure 124 ELEMENT p 125 TEXT 126 content=bla bla bla ... 127 ELEMENT image 128 ATTRIBUTE href 129 TEXT 130 content=linus.gif 131 ELEMENT p 132 TEXT 133 content=...</pre> 134<p>This should be useful for learning the internal representation model.</p> 135<p><a href="bugs.html">Daniel Veillard</a></p> 136</td></tr></table></td></tr></table></td></tr></table></td> 137</tr></table></td></tr></table> 138</body> 139</html> 140