blob: ccd9975a224f4a01076d3fa25a6ee331ce17e167 [file] [log] [blame]
Daniel Veillard43d3f612001-11-10 11:57:23 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
Daniel Veillardc9484202001-10-24 12:35:52 +00002<html>
3<head>
Daniel Veillard7216cfd2002-11-08 15:10:00 +00004<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Daniel Veillardc332dab2002-03-29 14:08:27 +00005<link rel="SHORTCUT ICON" href="/favicon.ico">
Daniel Veillardc9484202001-10-24 12:35:52 +00006<style type="text/css"><!--
Daniel Veillard373a4752002-02-21 14:46:29 +00007TD {font-family: Verdana,Arial,Helvetica}
8BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
9H1 {font-family: Verdana,Arial,Helvetica}
10H2 {font-family: Verdana,Arial,Helvetica}
11H3 {font-family: Verdana,Arial,Helvetica}
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000012A:link, A:visited, A:active { text-decoration: underline }
Daniel Veillardc9484202001-10-24 12:35:52 +000013--></style>
14<title>The tree output</title>
15</head>
16<body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000">
17<table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr>
18<td width="180">
Daniel Veillard8f40f1e2002-08-28 21:18:45 +000019<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>
Daniel Veillardc9484202001-10-24 12:35:52 +000020</td>
21<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">
22<h1>The XML C library for Gnome</h1>
23<h2>The tree output</h2>
24</td></tr></table></td></tr></table></td>
25</tr></table>
26<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>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000027<td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td>
28<table width="100%" border="0" cellspacing="1" cellpadding="3">
Daniel Veillardc9484202001-10-24 12:35:52 +000029<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr>
Daniel Veillard8acca112002-01-21 09:52:27 +000030<tr><td bgcolor="#fffacd"><ul>
Daniel Veillardc9484202001-10-24 12:35:52 +000031<li><a href="index.html">Home</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000032<li><a href="intro.html">Introduction</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000033<li><a href="FAQ.html">FAQ</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000034<li><a href="docs.html">Documentation</a></li>
35<li><a href="bugs.html">Reporting bugs and getting help</a></li>
36<li><a href="help.html">How to help</a></li>
37<li><a href="downloads.html">Downloads</a></li>
38<li><a href="news.html">News</a></li>
Daniel Veillard7b602b42002-01-08 13:26:00 +000039<li><a href="XMLinfo.html">XML</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000040<li><a href="XSLT.html">XSLT</a></li>
Daniel Veillard6dbcaf82002-02-20 14:37:47 +000041<li><a href="python.html">Python and bindings</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000042<li><a href="architecture.html">libxml architecture</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000043<li><a href="tree.html">The tree output</a></li>
44<li><a href="interface.html">The SAX interface</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000045<li><a href="xmldtd.html">Validation &amp; DTDs</a></li>
46<li><a href="xmlmem.html">Memory Management</a></li>
47<li><a href="encoding.html">Encodings support</a></li>
48<li><a href="xmlio.html">I/O Interfaces</a></li>
49<li><a href="catalog.html">Catalog support</a></li>
50<li><a href="library.html">The parser interfaces</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000051<li><a href="entities.html">Entities or no entities</a></li>
52<li><a href="namespaces.html">Namespaces</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000053<li><a href="upgrade.html">Upgrading 1.x code</a></li>
Daniel Veillard52dcab32001-10-30 12:51:17 +000054<li><a href="threads.html">Thread safety</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000055<li><a href="DOM.html">DOM Principles</a></li>
56<li><a href="example.html">A real example</a></li>
57<li><a href="contribs.html">Contributions</a></li>
Daniel Veillardfc59c092002-06-05 14:48:26 +000058<li><a href="tutorial/index.html">Tutorial</a></li>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000059<li>
60<a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a>
61</li>
Daniel Veillardc9484202001-10-24 12:35:52 +000062</ul></td></tr>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000063</table>
64<table width="100%" border="0" cellspacing="1" cellpadding="3">
Daniel Veillard3bf65be2002-01-23 12:36:34 +000065<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr>
Daniel Veillard5ede35e2002-10-01 11:37:35 +000066<tr><td bgcolor="#fffacd">
Daniel Veillard595978c2002-10-09 18:46:35 +000067<form action="search.php" enctype="application/x-www-form-urlencoded" method="GET">
Daniel Veillard5ede35e2002-10-01 11:37:35 +000068<input name="query" type="TEXT" size="20" value=""><input name="submit" type="submit" value="Search ...">
69</form>
70<ul>
Daniel Veillardf8592562002-01-23 17:58:17 +000071<li><a href="APIchunk0.html">Alphabetic</a></li>
Daniel Veillard3bf65be2002-01-23 12:36:34 +000072<li><a href="APIconstructors.html">Constructors</a></li>
73<li><a href="APIfunctions.html">Functions/Types</a></li>
74<li><a href="APIfiles.html">Modules</a></li>
75<li><a href="APIsymbols.html">Symbols</a></li>
Daniel Veillard5ede35e2002-10-01 11:37:35 +000076</ul>
77</td></tr>
Daniel Veillard3bf65be2002-01-23 12:36:34 +000078</table>
79<table width="100%" border="0" cellspacing="1" cellpadding="3">
Daniel Veillard594cf0b2001-10-25 08:09:12 +000080<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr>
Daniel Veillard8acca112002-01-21 09:52:27 +000081<tr><td bgcolor="#fffacd"><ul>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000082<li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li>
83<li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li>
Daniel Veillard4a859202002-01-08 11:49:22 +000084<li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li>
Daniel Veillard2d347fa2002-03-17 10:34:11 +000085<li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000086<li><a href="ftp://xmlsoft.org/">FTP</a></li>
Daniel Veillardbeb70bd2002-12-18 14:53:54 +000087<li><a href="http://ww.zlatkovic.com/projects/libxml/">Windows binaries</a></li>
Daniel Veillarddb9dfd92001-11-26 17:25:02 +000088<li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li>
Daniel Veillardcb7543b2002-09-09 10:54:06 +000089<li><a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a></li>
Daniel Veillarde6d8e202002-05-02 06:11:10 +000090<li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li>
Daniel Veillard2d347fa2002-03-17 10:34:11 +000091<li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml&amp;product=libxml2">Bug Tracker</a></li>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000092</ul></td></tr>
93</table>
94</td></tr></table></td>
Daniel Veillardc9484202001-10-24 12:35:52 +000095<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">
96<p>The parser returns a tree built during the document analysis. The value
97returned is an <strong>xmlDocPtr</strong> (i.e., a pointer to an
98<strong>xmlDoc</strong> structure). This structure contains information such
99as the file name, the document type, and a <strong>children</strong> pointer
100which is the root of the document (or more exactly the first child under the
101root which is the document). The tree is made of <strong>xmlNode</strong>s,
102chained in double-linked lists of siblings and with a children&lt;-&gt;parent
103relationship. An xmlNode can also carry properties (a chain of xmlAttr
104structures). An attribute may have a value which is a list of TEXT or
105ENTITY_REF nodes.</p>
106<p>Here is an example (erroneous with respect to the XML spec since there
107should be only one ELEMENT under the root):</p>
108<p><img src="structure.gif" alt=" structure.gif "></p>
109<p>In the source package there is a small program (not installed by default)
110called <strong>xmllint</strong> which parses XML files given as argument and
111prints them back as parsed. This is useful for detecting errors both in XML
112code and in the XML parser itself. It has an option <strong>--debug</strong>
113which prints the actual in-memory structure of the document; here is the
114result with the <a href="#example">example</a> given before:</p>
115<pre>DOCUMENT
116version=1.0
117standalone=true
118 ELEMENT EXAMPLE
119 ATTRIBUTE prop1
120 TEXT
121 content=gnome is great
122 ATTRIBUTE prop2
123 ENTITY_REF
124 TEXT
125 content= linux too
126 ELEMENT head
127 ELEMENT title
128 TEXT
129 content=Welcome to Gnome
130 ELEMENT chapter
131 ELEMENT title
132 TEXT
133 content=The Linux adventure
134 ELEMENT p
135 TEXT
136 content=bla bla bla ...
137 ELEMENT image
138 ATTRIBUTE href
139 TEXT
140 content=linus.gif
141 ELEMENT p
142 TEXT
143 content=...</pre>
144<p>This should be useful for learning the internal representation model.</p>
Daniel Veillard3f4c40f2002-02-13 09:19:28 +0000145<p><a href="bugs.html">Daniel Veillard</a></p>
Daniel Veillardc9484202001-10-24 12:35:52 +0000146</td></tr></table></td></tr></table></td></tr></table></td>
147</tr></table></td></tr></table>
148</body>
149</html>