blob: 4af907fcfa9987ac2aafa7bcb8fc0148a366e864 [file] [log] [blame]
Daniel Veillardc9484202001-10-24 12:35:52 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/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-size: 10pt; font-family: Verdana,Arial,Helvetica}
7BODY {font-size: 10pt; font-family: Verdana,Arial,Helvetica; margin-top: 5pt; margin-left: 0pt; margin-right: 0pt}
8H1 {font-size: 16pt; font-family: Verdana,Arial,Helvetica}
9H2 {font-size: 14pt; font-family: Verdana,Arial,Helvetica}
10H3 {font-size: 12pt; font-family: Verdana,Arial,Helvetica}
11--></style>
12<title>The tree output</title>
13</head>
14<body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000">
15<table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr>
16<td width="180">
17<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>
18</td>
19<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">
20<h1>The XML C library for Gnome</h1>
21<h2>The tree output</h2>
22</td></tr></table></td></tr></table></td>
23</tr></table>
24<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 +000025<td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td>
26<table width="100%" border="0" cellspacing="1" cellpadding="3">
Daniel Veillardc9484202001-10-24 12:35:52 +000027<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr>
28<tr><td bgcolor="#fffacd"><ul style="margin-left: -2pt">
29<li><a href="index.html">Home</a></li>
30<li><a href="FAQ.html">FAQ</a></li>
31<li><a href="intro.html">Introduction</a></li>
32<li><a href="docs.html">Documentation</a></li>
33<li><a href="bugs.html">Reporting bugs and getting help</a></li>
34<li><a href="help.html">How to help</a></li>
35<li><a href="downloads.html">Downloads</a></li>
36<li><a href="news.html">News</a></li>
37<li><a href="XML.html">XML</a></li>
38<li><a href="XSLT.html">XSLT</a></li>
39<li><a href="architecture.html">An overview of libxml architecture</a></li>
40<li><a href="tree.html">The tree output</a></li>
41<li><a href="interface.html">The SAX interface</a></li>
42<li><a href="library.html">The XML library interfaces</a></li>
43<li><a href="entities.html">Entities or no entities</a></li>
44<li><a href="namespaces.html">Namespaces</a></li>
45<li><a href="valid.html">Validation, or are you afraid of DTDs ?</a></li>
46<li><a href="DOM.html">DOM Principles</a></li>
47<li><a href="example.html">A real example</a></li>
48<li><a href="contribs.html">Contributions</a></li>
49<li><a href="encoding.html">Encodings support</a></li>
50<li><a href="catalog.html">Catalogs support</a></li>
51<li><a href="xmlio.html">I/O interfaces</a></li>
52<li><a href="xmlmem.html">Memory interfaces</a></li>
53<li><a href="xmldtd.html">DTD support</a></li>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000054<li>
55<a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a>
56</li>
Daniel Veillardc9484202001-10-24 12:35:52 +000057</ul></td></tr>
Daniel Veillard594cf0b2001-10-25 08:09:12 +000058</table>
59<table width="100%" border="0" cellspacing="1" cellpadding="3">
60<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr>
61<tr><td bgcolor="#fffacd"><ul style="margin-left: -2pt">
62<li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li>
63<li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li>
64<li><a href="http://www.cs.unibo.it/~casarini/gdome2/">DOM gdome2</a></li>
65<li><a href="ftp://xmlsoft.org/">FTP</a></li>
66<li><a href="http://www.fh-frankfurt.de/~igor/projects/libxml/">Windows binaries</a></li>
67<li><a href="http://pages.eidosnet.co.uk/~garypen/libxml/">Solaris binaries</a></li>
68</ul></td></tr>
69</table>
70</td></tr></table></td>
Daniel Veillardc9484202001-10-24 12:35:52 +000071<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">
72<p>The parser returns a tree built during the document analysis. The value
73returned is an <strong>xmlDocPtr</strong> (i.e., a pointer to an
74<strong>xmlDoc</strong> structure). This structure contains information such
75as the file name, the document type, and a <strong>children</strong> pointer
76which is the root of the document (or more exactly the first child under the
77root which is the document). The tree is made of <strong>xmlNode</strong>s,
78chained in double-linked lists of siblings and with a children&lt;-&gt;parent
79relationship. An xmlNode can also carry properties (a chain of xmlAttr
80structures). An attribute may have a value which is a list of TEXT or
81ENTITY_REF nodes.</p>
82<p>Here is an example (erroneous with respect to the XML spec since there
83should be only one ELEMENT under the root):</p>
84<p><img src="structure.gif" alt=" structure.gif "></p>
85<p>In the source package there is a small program (not installed by default)
86called <strong>xmllint</strong> which parses XML files given as argument and
87prints them back as parsed. This is useful for detecting errors both in XML
88code and in the XML parser itself. It has an option <strong>--debug</strong>
89which prints the actual in-memory structure of the document; here is the
90result with the <a href="#example">example</a> given before:</p>
91<pre>DOCUMENT
92version=1.0
93standalone=true
94 ELEMENT EXAMPLE
95 ATTRIBUTE prop1
96 TEXT
97 content=gnome is great
98 ATTRIBUTE prop2
99 ENTITY_REF
100 TEXT
101 content= linux too
102 ELEMENT head
103 ELEMENT title
104 TEXT
105 content=Welcome to Gnome
106 ELEMENT chapter
107 ELEMENT title
108 TEXT
109 content=The Linux adventure
110 ELEMENT p
111 TEXT
112 content=bla bla bla ...
113 ELEMENT image
114 ATTRIBUTE href
115 TEXT
116 content=linus.gif
117 ELEMENT p
118 TEXT
119 content=...</pre>
120<p>This should be useful for learning the internal representation model.</p>
121<p><a href="mailto:daniel@veillard.com">Daniel Veillard</a></p>
122</td></tr></table></td></tr></table></td></tr></table></td>
123</tr></table></td></tr></table>
124</body>
125</html>