blob: d3f942a862358fb7eeb4309da5bf480f39f861d6 [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>
25<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">
26<tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr>
27<tr><td bgcolor="#fffacd"><ul style="margin-left: -2pt">
28<li><a href="index.html">Home</a></li>
29<li><a href="FAQ.html">FAQ</a></li>
30<li><a href="intro.html">Introduction</a></li>
31<li><a href="docs.html">Documentation</a></li>
32<li><a href="bugs.html">Reporting bugs and getting help</a></li>
33<li><a href="help.html">How to help</a></li>
34<li><a href="downloads.html">Downloads</a></li>
35<li><a href="news.html">News</a></li>
36<li><a href="XML.html">XML</a></li>
37<li><a href="XSLT.html">XSLT</a></li>
38<li><a href="architecture.html">An overview of libxml architecture</a></li>
39<li><a href="tree.html">The tree output</a></li>
40<li><a href="interface.html">The SAX interface</a></li>
41<li><a href="library.html">The XML library interfaces</a></li>
42<li><a href="entities.html">Entities or no entities</a></li>
43<li><a href="namespaces.html">Namespaces</a></li>
44<li><a href="valid.html">Validation, or are you afraid of DTDs ?</a></li>
45<li><a href="DOM.html">DOM Principles</a></li>
46<li><a href="example.html">A real example</a></li>
47<li><a href="contribs.html">Contributions</a></li>
48<li><a href="encoding.html">Encodings support</a></li>
49<li><a href="catalog.html">Catalogs support</a></li>
50<li><a href="xmlio.html">I/O interfaces</a></li>
51<li><a href="xmlmem.html">Memory interfaces</a></li>
52<li><a href="xmldtd.html">DTD support</a></li>
53<li><a href="xml.html">flat page</a></li>
54</ul></td></tr>
55</table></td></tr></table></td>
56<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">
57<p>The parser returns a tree built during the document analysis. The value
58returned is an <strong>xmlDocPtr</strong> (i.e., a pointer to an
59<strong>xmlDoc</strong> structure). This structure contains information such
60as the file name, the document type, and a <strong>children</strong> pointer
61which is the root of the document (or more exactly the first child under the
62root which is the document). The tree is made of <strong>xmlNode</strong>s,
63chained in double-linked lists of siblings and with a children&lt;-&gt;parent
64relationship. An xmlNode can also carry properties (a chain of xmlAttr
65structures). An attribute may have a value which is a list of TEXT or
66ENTITY_REF nodes.</p>
67<p>Here is an example (erroneous with respect to the XML spec since there
68should be only one ELEMENT under the root):</p>
69<p><img src="structure.gif" alt=" structure.gif "></p>
70<p>In the source package there is a small program (not installed by default)
71called <strong>xmllint</strong> which parses XML files given as argument and
72prints them back as parsed. This is useful for detecting errors both in XML
73code and in the XML parser itself. It has an option <strong>--debug</strong>
74which prints the actual in-memory structure of the document; here is the
75result with the <a href="#example">example</a> given before:</p>
76<pre>DOCUMENT
77version=1.0
78standalone=true
79 ELEMENT EXAMPLE
80 ATTRIBUTE prop1
81 TEXT
82 content=gnome is great
83 ATTRIBUTE prop2
84 ENTITY_REF
85 TEXT
86 content= linux too
87 ELEMENT head
88 ELEMENT title
89 TEXT
90 content=Welcome to Gnome
91 ELEMENT chapter
92 ELEMENT title
93 TEXT
94 content=The Linux adventure
95 ELEMENT p
96 TEXT
97 content=bla bla bla ...
98 ELEMENT image
99 ATTRIBUTE href
100 TEXT
101 content=linus.gif
102 ELEMENT p
103 TEXT
104 content=...</pre>
105<p>This should be useful for learning the internal representation model.</p>
106<p><a href="mailto:daniel@veillard.com">Daniel Veillard</a></p>
107</td></tr></table></td></tr></table></td></tr></table></td>
108</tr></table></td></tr></table>
109</body>
110</html>