blob: 2e48d0cf5d5e93b23d83b6a1c47296833b72e857 [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>
4<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
5<style type="text/css"><!--
Daniel Veillard373a4752002-02-21 14:46:29 +00006TD {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}
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000011A:link, A:visited, A:active { text-decoration: underline }
Daniel Veillardc9484202001-10-24 12:35:52 +000012--></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>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000026<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">
Daniel Veillardc9484202001-10-24 12:35:52 +000028<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr>
Daniel Veillard8acca112002-01-21 09:52:27 +000029<tr><td bgcolor="#fffacd"><ul>
Daniel Veillardc9484202001-10-24 12:35:52 +000030<li><a href="index.html">Home</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000031<li><a href="intro.html">Introduction</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000032<li><a href="FAQ.html">FAQ</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000033<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>
Daniel Veillard7b602b42002-01-08 13:26:00 +000038<li><a href="XMLinfo.html">XML</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000039<li><a href="XSLT.html">XSLT</a></li>
Daniel Veillard6dbcaf82002-02-20 14:37:47 +000040<li><a href="python.html">Python and bindings</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000041<li><a href="architecture.html">libxml architecture</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000042<li><a href="tree.html">The tree output</a></li>
43<li><a href="interface.html">The SAX interface</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000044<li><a href="xmldtd.html">Validation &amp; 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>
Daniel Veillardc9484202001-10-24 12:35:52 +000050<li><a href="entities.html">Entities or no entities</a></li>
51<li><a href="namespaces.html">Namespaces</a></li>
Daniel Veillardb8cfbd12001-10-25 10:53:28 +000052<li><a href="upgrade.html">Upgrading 1.x code</a></li>
Daniel Veillard52dcab32001-10-30 12:51:17 +000053<li><a href="threads.html">Thread safety</a></li>
Daniel Veillardc9484202001-10-24 12:35:52 +000054<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>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000057<li>
58<a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a>
59</li>
Daniel Veillardc9484202001-10-24 12:35:52 +000060</ul></td></tr>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000061</table>
62<table width="100%" border="0" cellspacing="1" cellpadding="3">
Daniel Veillard3bf65be2002-01-23 12:36:34 +000063<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr>
64<tr><td bgcolor="#fffacd"><ul>
Daniel Veillardf8592562002-01-23 17:58:17 +000065<li><a href="APIchunk0.html">Alphabetic</a></li>
Daniel Veillard3bf65be2002-01-23 12:36:34 +000066<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">
Daniel Veillard594cf0b2001-10-25 08:09:12 +000073<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr>
Daniel Veillard8acca112002-01-21 09:52:27 +000074<tr><td bgcolor="#fffacd"><ul>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000075<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>
Daniel Veillard4a859202002-01-08 11:49:22 +000077<li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li>
Daniel Veillard2d347fa2002-03-17 10:34:11 +000078<li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000079<li><a href="ftp://xmlsoft.org/">FTP</a></li>
80<li><a href="http://www.fh-frankfurt.de/~igor/projects/libxml/">Windows binaries</a></li>
Daniel Veillarddb9dfd92001-11-26 17:25:02 +000081<li><a href="http://garypennington.net/libxml2/">Solaris binaries</a></li>
Daniel Veillard2d347fa2002-03-17 10:34:11 +000082<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 +000083</ul></td></tr>
84</table>
85</td></tr></table></td>
Daniel Veillardc9484202001-10-24 12:35:52 +000086<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">
87<p>The parser returns a tree built during the document analysis. The value
88returned is an <strong>xmlDocPtr</strong> (i.e., a pointer to an
89<strong>xmlDoc</strong> structure). This structure contains information such
90as the file name, the document type, and a <strong>children</strong> pointer
91which is the root of the document (or more exactly the first child under the
92root which is the document). The tree is made of <strong>xmlNode</strong>s,
93chained in double-linked lists of siblings and with a children&lt;-&gt;parent
94relationship. An xmlNode can also carry properties (a chain of xmlAttr
95structures). An attribute may have a value which is a list of TEXT or
96ENTITY_REF nodes.</p>
97<p>Here is an example (erroneous with respect to the XML spec since there
98should be only one ELEMENT under the root):</p>
99<p><img src="structure.gif" alt=" structure.gif "></p>
100<p>In the source package there is a small program (not installed by default)
101called <strong>xmllint</strong> which parses XML files given as argument and
102prints them back as parsed. This is useful for detecting errors both in XML
103code and in the XML parser itself. It has an option <strong>--debug</strong>
104which prints the actual in-memory structure of the document; here is the
105result with the <a href="#example">example</a> given before:</p>
106<pre>DOCUMENT
107version=1.0
108standalone=true
109 ELEMENT EXAMPLE
110 ATTRIBUTE prop1
111 TEXT
112 content=gnome is great
113 ATTRIBUTE prop2
114 ENTITY_REF
115 TEXT
116 content= linux too
117 ELEMENT head
118 ELEMENT title
119 TEXT
120 content=Welcome to Gnome
121 ELEMENT chapter
122 ELEMENT title
123 TEXT
124 content=The Linux adventure
125 ELEMENT p
126 TEXT
127 content=bla bla bla ...
128 ELEMENT image
129 ATTRIBUTE href
130 TEXT
131 content=linus.gif
132 ELEMENT p
133 TEXT
134 content=...</pre>
135<p>This should be useful for learning the internal representation model.</p>
Daniel Veillard3f4c40f2002-02-13 09:19:28 +0000136<p><a href="bugs.html">Daniel Veillard</a></p>
Daniel Veillardc9484202001-10-24 12:35:52 +0000137</td></tr></table></td></tr></table></td></tr></table></td>
138</tr></table></td></tr></table>
139</body>
140</html>