mirror of
https://gitlab.gnome.org/GNOME/libxml2
synced 2025-03-28 21:33:13 +00:00
Forgot to document 2.9.1 release, regenerate docs
This commit is contained in:
parent
63588f476f
commit
e38217ae82
51
doc/FAQ.html
51
doc/FAQ.html
@ -7,11 +7,13 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
||||
H2 {font-family: Verdana,Arial,Helvetica}
|
||||
H3 {font-family: Verdana,Arial,Helvetica}
|
||||
A:link, A:visited, A:active { text-decoration: underline }
|
||||
</style><title>FAQ</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>FAQ</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>Table of Contents:</p><ul><li><a href="FAQ.html#License">License(s)</a></li>
|
||||
</style><title>FAQ</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>FAQ</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>Table of Contents:</p><ul>
|
||||
<li><a href="FAQ.html#License">License(s)</a></li>
|
||||
<li><a href="FAQ.html#Installati">Installation</a></li>
|
||||
<li><a href="FAQ.html#Compilatio">Compilation</a></li>
|
||||
<li><a href="FAQ.html#Developer">Developer corner</a></li>
|
||||
</ul><h3><a name="License" id="License">License</a>(s)</h3><ol><li><em>Licensing Terms for libxml</em>
|
||||
</ul><h3><a name="License" id="License">License</a>(s)</h3><ol>
|
||||
<li><em>Licensing Terms for libxml</em>
|
||||
<p>libxml2 is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
|
||||
License</a>; see the file Copyright in the distribution for the precise
|
||||
wording</p>
|
||||
@ -22,7 +24,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
improvements as patches for possible incorporation in the main
|
||||
development tree.</p>
|
||||
</li>
|
||||
</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol><li><strong><span style="background-color: #FF0000">Do Not Use
|
||||
</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol>
|
||||
<li><strong><span style="background-color: #FF0000">Do Not Use
|
||||
libxml1</span></strong>, use libxml2</li>
|
||||
<p></p>
|
||||
<li><em>Where can I get libxml</em> ?
|
||||
@ -33,7 +36,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
</li>
|
||||
<p></p>
|
||||
<li><em>I see libxml and libxml2 releases, which one should I install ?</em>
|
||||
<ul><li>If you are not constrained by backward compatibility issues with
|
||||
<ul>
|
||||
<li>If you are not constrained by backward compatibility issues with
|
||||
existing applications, install libxml2 only</li>
|
||||
<li>If you are not doing development, you can safely install both.
|
||||
Usually the packages <a href="http://rpmfind.net/linux/RPM/libxml.html">libxml</a> and <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml2</a> are
|
||||
@ -45,7 +49,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
too for libxml2 >= 2.3.0</li>
|
||||
<li>If you are developing a new application, please develop against
|
||||
libxml2(-devel)</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><em>I can't install the libxml package, it conflicts with libxml0</em>
|
||||
<p>You probably have an old libxml0 package used to provide the shared
|
||||
library for libxml.so.0, you can probably safely remove it. The libxml
|
||||
@ -62,7 +67,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
package, providing includes, static libraries and scripts needed to build
|
||||
applications with libxml(2)) that you can install locally.</p>
|
||||
</li>
|
||||
</ol><h3><a name="Compilatio" id="Compilatio">Compilation</a></h3><ol><li><em>What is the process to compile libxml2 ?</em>
|
||||
</ol><h3><a name="Compilatio" id="Compilatio">Compilation</a></h3><ol>
|
||||
<li><em>What is the process to compile libxml2 ?</em>
|
||||
<p>As most UNIX libraries libxml2 follows the "standard":</p>
|
||||
<p><code>gunzip -c xxx.tar.gz | tar xvf -</code></p>
|
||||
<p><code>cd libxml-xxxx</code></p>
|
||||
@ -80,14 +86,16 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
find).</p>
|
||||
<p>However if found at configuration time libxml2 will detect and use the
|
||||
following libs:</p>
|
||||
<ul><li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a> : a
|
||||
<ul>
|
||||
<li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a> : a
|
||||
highly portable and available widely compression library.</li>
|
||||
<li>iconv: a powerful character encoding conversion library. It is
|
||||
included by default in recent glibc libraries, so it doesn't need to
|
||||
be installed specifically on Linux. It now seems a <a href="http://www.opennc.org/onlinepubs/7908799/xsh/iconv.html">part
|
||||
of the official UNIX</a> specification. Here is one <a href="http://www.gnu.org/software/libiconv/">implementation of the
|
||||
library</a> which source can be found <a href="ftp://ftp.ilog.fr/pub/Users/haible/gnu/">here</a>.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</li>
|
||||
<p></p>
|
||||
<li><em>Make check fails on some platforms</em>
|
||||
<p>Sometimes the regression tests' results don't completely match the
|
||||
@ -108,7 +116,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
optimizer which miscompiles the URI module. Please use another
|
||||
compiler.</p>
|
||||
</li>
|
||||
</ol><h3><a name="Developer" id="Developer">Developer</a> corner</h3><ol><li><em>Troubles compiling or linking programs using libxml2</em>
|
||||
</ol><h3><a name="Developer" id="Developer">Developer</a> corner</h3><ol>
|
||||
<li><em>Troubles compiling or linking programs using libxml2</em>
|
||||
<p>Usually the problem comes from the fact that the compiler doesn't get
|
||||
the right compilation or linking flags. There is a small shell script
|
||||
<code>xml2-config</code> which is installed as part of libxml2 usual
|
||||
@ -126,7 +135,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<p>There are many different ways to accomplish this. Here is one way to
|
||||
do this under Linux. Suppose your home directory is <code>/home/user.
|
||||
</code>Then:</p>
|
||||
<ul><li>Create a subdirectory, let's call it <code>myxml</code></li>
|
||||
<ul>
|
||||
<li>Create a subdirectory, let's call it <code>myxml</code></li>
|
||||
<li>unpack the libxml2 distribution into that subdirectory</li>
|
||||
<li>chdir into the unpacked distribution
|
||||
(<code>/home/user/myxml/libxml2 </code>)</li>
|
||||
@ -159,7 +169,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
program which you just installed will be used instead of the system
|
||||
default one, and this will <em>automatically</em> get the correct
|
||||
libraries linked with your program.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<p></p>
|
||||
<li><em>xmlDocDump() generates output on one line.</em>
|
||||
@ -167,7 +178,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
document since <strong>all spaces in the content of a document are
|
||||
significant</strong>. If you build a tree from the API and want
|
||||
indentation:</p>
|
||||
<ol><li>the correct way is to generate those yourself too.</li>
|
||||
<ol>
|
||||
<li>the correct way is to generate those yourself too.</li>
|
||||
<li>the dangerous way is to ask libxml2 to add those blanks to your
|
||||
content <strong>modifying the content of your document in the
|
||||
process</strong>. The result may not be what you expect. There is
|
||||
@ -175,7 +187,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
affect other parts of the content of your document. See <a href="http://xmlsoft.org/html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault
|
||||
()</a> and <a href="http://xmlsoft.org/html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile
|
||||
()</a></li>
|
||||
</ol></li>
|
||||
</ol>
|
||||
</li>
|
||||
<p></p>
|
||||
<li><em>Extra nodes in the document:</em>
|
||||
<p><em>For an XML file as below:</em></p>
|
||||
@ -233,7 +246,8 @@ pnode=pxmlDoc->children->children;</pre>
|
||||
web page?</em>
|
||||
<p>Ideally a libxml2 book would be nice. I have no such plan ... But you
|
||||
can:</p>
|
||||
<ul><li>check more deeply the <a href="html/libxml-lib.html">existing
|
||||
<ul>
|
||||
<li>check more deeply the <a href="html/libxml-lib.html">existing
|
||||
generated doc</a></li>
|
||||
<li>have a look at <a href="examples/index.html">the set of
|
||||
examples</a>.</li>
|
||||
@ -244,18 +258,21 @@ pnode=pxmlDoc->children->children;</pre>
|
||||
as possible, so looking at it may be helpful. In particular the code
|
||||
of <a href="http://svn.gnome.org/viewvc/libxml2/trunk/xmllint.c?view=markup">xmllint.c</a> and of the various testXXX.c test programs should
|
||||
provide good examples of how to do things with the library.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</li>
|
||||
<p></p>
|
||||
<li><em>What about C++ ?</em>
|
||||
<p>libxml2 is written in pure C in order to allow easy reuse on a number
|
||||
of platforms, including embedded systems. I don't intend to convert to
|
||||
C++.</p>
|
||||
<p>There is however a C++ wrapper which may fulfill your needs:</p>
|
||||
<ul><li>by Ari Johnson <ari@btigate.com>:
|
||||
<ul>
|
||||
<li>by Ari Johnson <ari@btigate.com>:
|
||||
<p>Website: <a href="http://libxmlplusplus.sourceforge.net/">http://libxmlplusplus.sourceforge.net/</a></p>
|
||||
<p>Download: <a href="http://sourceforge.net/project/showfiles.php?group_id=12999">http://sourceforge.net/project/showfiles.php?group_id=12999</a></p>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><em>How to validate a document a posteriori ?</em>
|
||||
<p>It is possible to validate documents which had not been validated at
|
||||
initial parsing time or documents which have been built from scratch
|
||||
|
File diff suppressed because one or more lines are too long
@ -31,7 +31,8 @@ likely to be answered if they made it to the list, <strong>DO NOT</strong>
|
||||
post to the list from an email address where such legal requirements are
|
||||
automatically added, get private paying support if you can't share
|
||||
information.</p><p>Check the following <strong><span style="color: #FF0000">before
|
||||
posting</span></strong>:</p><ul><li>Read the <a href="FAQ.html">FAQ</a> and <a href="search.php">use the
|
||||
posting</span></strong>:</p><ul>
|
||||
<li>Read the <a href="FAQ.html">FAQ</a> and <a href="search.php">use the
|
||||
search engine</a> to get information related to your problem.</li>
|
||||
<li>Make sure you are <a href="ftp://xmlsoft.org/libxml2/">using a recent
|
||||
version</a>, and that the problem still shows up in a recent version.</li>
|
||||
@ -46,7 +47,8 @@ posting</span></strong>:</p><ul><li>Read the <a href="FAQ.html">FAQ</a> and <a h
|
||||
</ul><p>Then send the bug with associated information to reproduce it to the <a href="mailto:xml@gnome.org">xml@gnome.org</a> list; if it's really libxml
|
||||
related I will approve it. Please do not send mail to me directly, it makes
|
||||
things really hard to track and in some cases I am not the best person to
|
||||
answer a given question, ask on the list.</p><p>To <span style="color: #E50000">be really clear about support</span>:</p><ul><li>Support or help <span style="color: #E50000">requests MUST be sent to
|
||||
answer a given question, ask on the list.</p><p>To <span style="color: #E50000">be really clear about support</span>:</p><ul>
|
||||
<li>Support or help <span style="color: #E50000">requests MUST be sent to
|
||||
the list or on bugzilla</span> in case of problems, so that the Question
|
||||
and Answers can be shared publicly. Failing to do so carries the implicit
|
||||
message "I want free support but I don't want to share the benefits with
|
||||
|
@ -7,7 +7,8 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
||||
H2 {font-family: Verdana,Arial,Helvetica}
|
||||
H3 {font-family: Verdana,Arial,Helvetica}
|
||||
A:link, A:visited, A:active { text-decoration: underline }
|
||||
</style><title>Catalog support</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>Catalog support</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>Table of Content:</p><ol><li><a href="General2">General overview</a></li>
|
||||
</style><title>Catalog support</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>Catalog support</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>Table of Content:</p><ol>
|
||||
<li><a href="General2">General overview</a></li>
|
||||
<li><a href="#definition">The definition</a></li>
|
||||
<li><a href="#Simple">Using catalogs</a></li>
|
||||
<li><a href="#Some">Some examples</a></li>
|
||||
@ -22,7 +23,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
is inserted between the moment the reference is recognized by the software
|
||||
(XML parser, stylesheet processing, or even images referenced for inclusion
|
||||
in a rendering) and the time where loading that resource is actually
|
||||
started.</p><p>It is basically used for 3 things:</p><ul><li>mapping from "logical" names, the public identifiers and a more
|
||||
started.</p><p>It is basically used for 3 things:</p><ul>
|
||||
<li>mapping from "logical" names, the public identifiers and a more
|
||||
concrete name usable for download (and URI). For example it can associate
|
||||
the logical name
|
||||
<p>"-//OASIS//DTD DocBook XML V4.1.2//EN"</p>
|
||||
@ -41,7 +43,8 @@ started.</p><p>It is basically used for 3 things:</p><ul><li>mapping from "logic
|
||||
important feature for any significant deployment of XML or SGML since it
|
||||
allows to avoid the aleas and delays associated to fetching remote
|
||||
resources.</li>
|
||||
</ul><h3><a name="definition" id="definition">The definitions</a></h3><p>Libxml, as of 2.4.3 implements 2 kind of catalogs:</p><ul><li>the older SGML catalogs, the official spec is SGML Open Technical
|
||||
</ul><h3><a name="definition" id="definition">The definitions</a></h3><p>Libxml, as of 2.4.3 implements 2 kind of catalogs:</p><ul>
|
||||
<li>the older SGML catalogs, the official spec is SGML Open Technical
|
||||
Resolution TR9401:1997, but is better understood by reading <a href="http://www.jclark.com/sp/catalog.htm">the SP Catalog page</a> from
|
||||
James Clark. This is relatively old and not the preferred mode of
|
||||
operation of libxml.</li>
|
||||
@ -193,7 +196,8 @@ catalog support</a>.</p><p>The header for the catalog interfaces should be inclu
|
||||
applications really need access to it since it is the default behaviour of
|
||||
libxml2 (Note: it is possible to completely override libxml2 default catalog
|
||||
by using <a href="html/libxml-parser.html">xmlSetExternalEntityLoader</a> to
|
||||
plug an application specific resolver).</p><p>Basically libxml2 support 2 catalog lists:</p><ul><li>the default one, global shared by all the application</li>
|
||||
plug an application specific resolver).</p><p>Basically libxml2 support 2 catalog lists:</p><ul>
|
||||
<li>the default one, global shared by all the application</li>
|
||||
<li>a per-document catalog, this one is built if the document uses the
|
||||
<code>oasis-xml-catalog</code> PIs to specify its own catalog list, it is
|
||||
associated to the parser context and destroyed when the parsing context
|
||||
@ -224,7 +228,8 @@ provided because this functionality may be useful for client tools.</p><h4>threa
|
||||
try to avoid troubles in multithreaded environments. The code is now thread
|
||||
safe assuming that the libxml2 library has been compiled with threads
|
||||
support.</p><p></p><h3><a name="Other" id="Other">Other resources</a></h3><p>The XML Catalog specification is relatively recent so there isn't much
|
||||
literature to point at:</p><ul><li>You can find a good rant from Norm Walsh about <a href="http://www.arbortext.com/Think_Tank/XML_Resources/Issue_Three/issue_three.html">the
|
||||
literature to point at:</p><ul>
|
||||
<li>You can find a good rant from Norm Walsh about <a href="http://www.arbortext.com/Think_Tank/XML_Resources/Issue_Three/issue_three.html">the
|
||||
need for catalogs</a>, it provides a lot of context information even if
|
||||
I don't agree with everything presented. Norm also wrote a more recent
|
||||
article <a href="http://wwws.sun.com/software/xml/developers/resolver/article/">XML
|
||||
|
@ -7,7 +7,8 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
||||
H2 {font-family: Verdana,Arial,Helvetica}
|
||||
H3 {font-family: Verdana,Arial,Helvetica}
|
||||
A:link, A:visited, A:active { text-decoration: underline }
|
||||
</style><title>Contributions</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>Contributions</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><ul><li>Bjorn Reese, William Brack and Thomas Broyer have provided a number of
|
||||
</style><title>Contributions</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>Contributions</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><ul>
|
||||
<li>Bjorn Reese, William Brack and Thomas Broyer have provided a number of
|
||||
patches, Gary Pennington worked on the validation API, threading support
|
||||
and Solaris port.</li>
|
||||
<li>John Fleck helps maintaining the documentation and man pages.</li>
|
||||
|
File diff suppressed because one or more lines are too long
@ -12,7 +12,8 @@ mirrors (<a href="ftp://fr.rpmfind.net/pub/libxml/">France</a> and
|
||||
Antonin Sprinzl also provide <a href="ftp://gd.tuwien.ac.at/pub/libxml/">a
|
||||
mirror in Austria</a>). (NOTE that you need both the <a href="http://rpmfind.net/linux/RPM/libxml2.html">libxml(2)</a> and <a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml(2)-devel</a>
|
||||
packages installed to compile applications using libxml if using RPMs.)</p><p>You can find all the history of libxml(2) and libxslt releases in the <a href="http://xmlsoft.org/sources/old/">old</a> directory. The precompiled
|
||||
Windows binaries made by Igor Zlatovic are available in the <a href="http://xmlsoft.org/sources/win32/">win32</a> directory.</p><p>Binary ports:</p><ul><li>RPMs for x86_64 are available directly on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>, the source RPM will compile on
|
||||
Windows binaries made by Igor Zlatovic are available in the <a href="http://xmlsoft.org/sources/win32/">win32</a> directory.</p><p>Binary ports:</p><ul>
|
||||
<li>RPMs for x86_64 are available directly on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>, the source RPM will compile on
|
||||
any architecture supported.</li>
|
||||
<li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a> is now the
|
||||
maintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he provides
|
||||
@ -24,11 +25,13 @@ Windows binaries made by Igor Zlatovic are available in the <a href="http://xmls
|
||||
<li>The HP-UX porting center provides <a href="http://hpux.connect.org.uk/hppd/hpux/Gnome/">HP-UX binaries</a></li>
|
||||
<li>Bull provides precompiled <a href="http://gnome.bullfreeware.com/new_index.html">RPMs for AIX</a> as
|
||||
patr of their GNOME packages</li>
|
||||
</ul><p>If you know other supported binary ports, please <a href="http://veillard.com/">contact me</a>.</p><p><a name="Snapshot" id="Snapshot">Snapshot:</a></p><ul><li>Code from the GNOME GIT base libxml2 module, updated hourly <a href="ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz">libxml2-git-snapshot.tar.gz</a>.</li>
|
||||
</ul><p>If you know other supported binary ports, please <a href="http://veillard.com/">contact me</a>.</p><p><a name="Snapshot" id="Snapshot">Snapshot:</a></p><ul>
|
||||
<li>Code from the GNOME GIT base libxml2 module, updated hourly <a href="ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz">libxml2-git-snapshot.tar.gz</a>.</li>
|
||||
<li>Docs, content of the web site, the list archive included <a href="ftp://xmlsoft.org/libxml2/libxml-docs.tar.gz">libxml-docs.tar.gz</a>.</li>
|
||||
</ul><p><a name="Contribs" id="Contribs">Contributions:</a></p><p>I do accept external contributions, especially if compiling on another
|
||||
platform, get in touch with the list to upload the package, wrappers for
|
||||
various languages have been provided, and can be found in the <a href="python.html">bindings section</a></p><p>Libxml2 is also available from GIT:</p><ul><li><p>See <a href="http://git.gnome.org/browse/libxml2/">libxml2 Git web</a>.
|
||||
various languages have been provided, and can be found in the <a href="python.html">bindings section</a></p><p>Libxml2 is also available from GIT:</p><ul>
|
||||
<li><p>See <a href="http://git.gnome.org/browse/libxml2/">libxml2 Git web</a>.
|
||||
To checkout a local tree use:</p>
|
||||
<pre>git clone git://git.gnome.org/libxml2</pre>
|
||||
</li>
|
||||
|
@ -13,7 +13,8 @@ by Tim Bray on Unicode and why you should care about it.</p><p>If you don't unde
|
||||
without knowing what encoding it uses</b>, then as Joel Spolsky said <a href="http://www.joelonsoftware.com/articles/Unicode.html">please do not
|
||||
write another line of code until you finish reading that article.</a>. It is
|
||||
a prerequisite to understand this page, and avoid a lot of problems with
|
||||
libxml2, XML or text processing in general.</p><p>Table of Content:</p><ol><li><a href="encoding.html#What">What does internationalization support
|
||||
libxml2, XML or text processing in general.</p><p>Table of Content:</p><ol>
|
||||
<li><a href="encoding.html#What">What does internationalization support
|
||||
mean ?</a></li>
|
||||
<li><a href="encoding.html#internal">The internal encoding, how and
|
||||
why</a></li>
|
||||
@ -33,7 +34,8 @@ allows the document to be encoded in other encodings at the condition that
|
||||
they are clearly labeled as such. For example the following is a wellformed
|
||||
XML document encoded in ISO-8859-1 and using accentuated letters that we
|
||||
French like for both markup and content:</p><pre><?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<très>là </très></pre><p>Having internationalization support in libxml2 means the following:</p><ul><li>the document is properly parsed</li>
|
||||
<très>là </très></pre><p>Having internationalization support in libxml2 means the following:</p><ul>
|
||||
<li>the document is properly parsed</li>
|
||||
<li>information about it's encoding is saved</li>
|
||||
<li>it can be modified</li>
|
||||
<li>it can be saved in its original encoding</li>
|
||||
@ -54,7 +56,8 @@ an internationalized fashion by libxml2 too:</p><pre><!DOCTYPE HTML PUBLIC "-
|
||||
<p>W3C crée des standards pour le Web.</body>
|
||||
</html></pre><h3><a name="internal" id="internal">The internal encoding, how and why</a></h3><p>One of the core decisions was to force all documents to be converted to a
|
||||
default internal encoding, and that encoding to be UTF-8, here are the
|
||||
rationales for those choices:</p><ul><li>keeping the native encoding in the internal form would force the libxml
|
||||
rationales for those choices:</p><ul>
|
||||
<li>keeping the native encoding in the internal form would force the libxml
|
||||
users (or the code associated) to be fully aware of the encoding of the
|
||||
original document, for examples when adding a text node to a document,
|
||||
the content would have to be provided in the document encoding, i.e. the
|
||||
@ -67,7 +70,8 @@ rationales for those choices:</p><ul><li>keeping the native encoding in the inte
|
||||
considered an intelligent choice too since it's a direct Unicode mapping
|
||||
support. I selected UTF-8 on the basis of efficiency and compatibility
|
||||
with surrounding software:
|
||||
<ul><li>UTF-8 while a bit more complex to convert from/to (i.e. slightly
|
||||
<ul>
|
||||
<li>UTF-8 while a bit more complex to convert from/to (i.e. slightly
|
||||
more costly to import and export CPU wise) is also far more compact
|
||||
than UTF-16 (and UCS-4) for a majority of the documents I see it used
|
||||
for right now (RPM RDF catalogs, advogato data, various configuration
|
||||
@ -86,8 +90,10 @@ rationales for those choices:</p><ul><li>keeping the native encoding in the inte
|
||||
upcoming Gnome text widget, and a lot of Unix code (yet another place
|
||||
where Unix programmer base takes a different approach from Microsoft
|
||||
- they are using UTF-16)</li>
|
||||
</ul></li>
|
||||
</ul><p>What does this mean in practice for the libxml2 user:</p><ul><li>xmlChar, the libxml2 data type is a byte, those bytes must be assembled
|
||||
</ul>
|
||||
</li>
|
||||
</ul><p>What does this mean in practice for the libxml2 user:</p><ul>
|
||||
<li>xmlChar, the libxml2 data type is a byte, those bytes must be assembled
|
||||
as UTF-8 valid strings. The proper way to terminate an xmlChar * string
|
||||
is simply to append 0 byte, as usual.</li>
|
||||
<li>One just need to make sure that when using chars outside the ASCII set,
|
||||
@ -95,7 +101,8 @@ rationales for those choices:</p><ul><li>keeping the native encoding in the inte
|
||||
</ul><h3><a name="implemente" id="implemente">How is it implemented ?</a></h3><p>Let's describe how all this works within libxml, basically the I18N
|
||||
(internationalization) support get triggered only during I/O operation, i.e.
|
||||
when reading a document or saving one. Let's look first at the reading
|
||||
sequence:</p><ol><li>when a document is processed, we usually don't know the encoding, a
|
||||
sequence:</p><ol>
|
||||
<li>when a document is processed, we usually don't know the encoding, a
|
||||
simple heuristic allows to detect UTF-16 and UCS-4 from encodings where
|
||||
the ASCII range (0-0x7F) maps with ASCII</li>
|
||||
<li>the xml declaration if available is parsed, including the encoding
|
||||
@ -136,7 +143,8 @@ err2.xml:1: error: Unsupported encoding UnsupportedEnc
|
||||
collected/built an xmlDoc DOM like structure) ? It depends on the function
|
||||
called, xmlSaveFile() will just try to save in the original encoding, while
|
||||
xmlSaveFileTo() and xmlSaveFileEnc() can optionally save to a given
|
||||
encoding:</p><ol><li>if no encoding is given, libxml2 will look for an encoding value
|
||||
encoding:</p><ol>
|
||||
<li>if no encoding is given, libxml2 will look for an encoding value
|
||||
associated to the document and if it exists will try to save to that
|
||||
encoding,
|
||||
<p>otherwise everything is written in the internal form, i.e. UTF-8</p>
|
||||
@ -175,7 +183,8 @@ so a couple of functions htmlGetMetaEncoding() and htmlSetMetaEncoding() have
|
||||
been provided. The parser also attempts to switch encoding on the fly when
|
||||
detecting such a tag on input. Except for that the processing is the same
|
||||
(and again reuses the same code).</p><h3><a name="Default" id="Default">Default supported encodings</a></h3><p>libxml2 has a set of default converters for the following encodings
|
||||
(located in encoding.c):</p><ol><li>UTF-8 is supported by default (null handlers)</li>
|
||||
(located in encoding.c):</p><ol>
|
||||
<li>UTF-8 is supported by default (null handlers)</li>
|
||||
<li>UTF-16, both little and big endian</li>
|
||||
<li>ISO-Latin-1 (ISO-8859-1) covering most western languages</li>
|
||||
<li>ASCII, useful mostly for saving</li>
|
||||
@ -193,7 +202,8 @@ goal is to be able to parse document whose encoding is supported but where
|
||||
the name differs (for example from the default set of names accepted by
|
||||
iconv). The following functions allow to register and handle new aliases for
|
||||
existing encodings. Once registered libxml2 will automatically lookup the
|
||||
aliases when handling a document:</p><ul><li>int xmlAddEncodingAlias(const char *name, const char *alias);</li>
|
||||
aliases when handling a document:</p><ul>
|
||||
<li>int xmlAddEncodingAlias(const char *name, const char *alias);</li>
|
||||
<li>int xmlDelEncodingAlias(const char *alias);</li>
|
||||
<li>const char * xmlGetEncodingAlias(const char *alias);</li>
|
||||
<li>void xmlCleanupEncodingAliases(void);</li>
|
||||
|
@ -113,7 +113,8 @@ DEBUG("parsePerson\n");
|
||||
}
|
||||
|
||||
return(ret);
|
||||
}</pre><p>Here are a couple of things to notice:</p><ul><li>Usually a recursive parsing style is the more convenient one: XML data
|
||||
}</pre><p>Here are a couple of things to notice:</p><ul>
|
||||
<li>Usually a recursive parsing style is the more convenient one: XML data
|
||||
is by nature subject to repetitive constructs and usually exhibits highly
|
||||
structured patterns.</li>
|
||||
<li>The two arguments of type <em>xmlDocPtr</em> and <em>xmlNsPtr</em>,
|
||||
|
@ -9,7 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
|
||||
A:link, A:visited, A:active { text-decoration: underline }
|
||||
</style><title>How to help</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>How to help</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>You can help the project in various ways, the best thing to do first is to
|
||||
subscribe to the mailing-list as explained before, check the <a href="http://mail.gnome.org/archives/xml/">archives </a>and the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Gnome bug
|
||||
database</a>:</p><ol><li>Provide patches when you find problems.</li>
|
||||
database</a>:</p><ol>
|
||||
<li>Provide patches when you find problems.</li>
|
||||
<li>Provide the diffs when you port libxml2 to a new platform. They may not
|
||||
be integrated in all cases but help pinpointing portability problems
|
||||
and</li>
|
||||
|
274
doc/index.html
274
doc/index.html
@ -1,10 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<link rel="SHORTCUT ICON" href="/favicon.ico" />
|
||||
<style type="text/css">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="SHORTCUT ICON" href="/favicon.ico" /><style type="text/css">
|
||||
TD {font-family: Verdana,Arial,Helvetica}
|
||||
BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
|
||||
H1 {font-family: Verdana,Arial,Helvetica}
|
||||
@ -12,233 +9,23 @@ H2 {font-family: Verdana,Arial,Helvetica}
|
||||
H3 {font-family: Verdana,Arial,Helvetica}
|
||||
A:link, A:visited, A:active { text-decoration: underline }
|
||||
</style>
|
||||
<title>The XML C parser and toolkit of Gnome</title>
|
||||
</head>
|
||||
<body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
|
||||
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="center">
|
||||
<tr>
|
||||
<td width="120">
|
||||
<a href="http://swpat.ffii.org/">
|
||||
<img src="epatents.png" alt="Action against software patents" />
|
||||
</a>
|
||||
</td>
|
||||
<td width="180">
|
||||
<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>
|
||||
</td>
|
||||
<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">
|
||||
<h1>The XML C parser and toolkit of Gnome</h1>
|
||||
<h2>libxml</h2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<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>
|
||||
<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">
|
||||
<tr>
|
||||
<td colspan="1" bgcolor="#eecfa1" align="center">
|
||||
<center>
|
||||
<b>Main Menu</b>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffacd">
|
||||
<form action="search.php" enctype="application/x-www-form-urlencoded" method="get">
|
||||
<input name="query" type="text" size="20" value="" />
|
||||
<input name="submit" type="submit" value="Search ..." />
|
||||
</form>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="index.html">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="html/index.html">Reference Manual</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="intro.html">Introduction</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="FAQ.html">FAQ</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="docs.html" style="font-weight:bold">Developer Menu</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="bugs.html">Reporting bugs and getting help</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="help.html">How to help</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="downloads.html">Downloads</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="news.html">Releases</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="XMLinfo.html">XML</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="XSLT.html">XSLT</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="xmldtd.html">Validation & DTDs</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="encoding.html">Encodings support</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="catalog.html">Catalog support</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="namespaces.html">Namespaces</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="contribs.html">Contributions</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="examples/index.html" style="font-weight:bold">Code Examples</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="html/index.html" style="font-weight:bold">API Menu</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="guidelines.html">XML Guidelines</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="ChangeLog.html">Recent Changes</a>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width="100%" border="0" cellspacing="1" cellpadding="3">
|
||||
<tr>
|
||||
<td colspan="1" bgcolor="#eecfa1" align="center">
|
||||
<center>
|
||||
<b>Related links</b>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#fffacd">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="http://mail.gnome.org/archives/xml/">Mail archive</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="ftp://xmlsoft.org/">FTP</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://opencsw.org/packages/libxml2">Solaris binaries</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://lxml.de/">lxml Python bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://libxml.rubyforge.org/">Ruby bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://tclxml.sourceforge.net/">Tcl bindings</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<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">
|
||||
<p></p>
|
||||
<p style="text-align: right; font-style: italic; font-size: 10pt">"Programming
|
||||
<title>The XML C parser and toolkit of Gnome</title>
|
||||
|
||||
</head>
|
||||
<body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>libxml</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p></p><p style="text-align: right; font-style: italic; font-size: 10pt">"Programming
|
||||
with libxml2 is like the thrilling embrace of an exotic stranger." <a href="http://diveintomark.org/archives/2004/02/18/libxml2">Mark
|
||||
Pilgrim</a></p>
|
||||
<p>Libxml2 is the XML C parser and toolkit developed for the Gnome project
|
||||
Pilgrim</a></p><p>Libxml2 is the XML C parser and toolkit developed for the Gnome project
|
||||
(but usable outside of the Gnome platform), it is free software available
|
||||
under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
|
||||
License</a>. XML itself is a metalanguage to design markup languages, i.e.
|
||||
text language where semantic and structure are added to the content using
|
||||
extra "markup" information enclosed between angle brackets. HTML is the most
|
||||
well-known markup language. Though the library is written in C <a href="python.html">a variety of language bindings</a> make it available in
|
||||
other environments.</p>
|
||||
<p>Libxml2 is known to be very portable, the library should build and work
|
||||
other environments.</p><p>Libxml2 is known to be very portable, the library should build and work
|
||||
without serious troubles on a variety of systems (Linux, Unix, Windows,
|
||||
CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, ...)</p>
|
||||
<p>Libxml2 implements a number of existing standards related to markup
|
||||
languages:</p>
|
||||
<ul><li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
|
||||
CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, ...)</p><p>Libxml2 implements a number of existing standards related to markup
|
||||
languages:</p><ul>
|
||||
<li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
|
||||
<li>Namespaces in XML: <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li>
|
||||
<li>XML Base: <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li>
|
||||
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> :
|
||||
@ -259,14 +46,12 @@ languages:</p>
|
||||
2001</a></li>
|
||||
<li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a> Working Draft 7
|
||||
April 2004</li>
|
||||
</ul>
|
||||
<p>In most cases libxml2 tries to implement the specifications in a
|
||||
</ul><p>In most cases libxml2 tries to implement the specifications in a
|
||||
relatively strictly compliant way. As of release 2.4.16, libxml2 passed all
|
||||
1800+ tests from the <a href="http://www.oasis-open.org/committees/xml-conformance/">OASIS XML Tests
|
||||
Suite</a>.</p>
|
||||
<p>To some extent libxml2 provides support for the following additional
|
||||
specifications but doesn't claim to implement them completely:</p>
|
||||
<ul><li>Document Object Model (DOM) <a href="http://www.w3.org/TR/DOM-Level-2-Core/">http://www.w3.org/TR/DOM-Level-2-Core/</a>
|
||||
Suite</a>.</p><p>To some extent libxml2 provides support for the following additional
|
||||
specifications but doesn't claim to implement them completely:</p><ul>
|
||||
<li>Document Object Model (DOM) <a href="http://www.w3.org/TR/DOM-Level-2-Core/">http://www.w3.org/TR/DOM-Level-2-Core/</a>
|
||||
the document model, but it doesn't implement the API itself, gdome2 does
|
||||
this on top of libxml2</li>
|
||||
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC 959</a> :
|
||||
@ -275,12 +60,10 @@ specifications but doesn't claim to implement them completely:</p>
|
||||
HTTP/1.0, again a basic HTTP client code</li>
|
||||
<li>SAX: a SAX2 like interface and a minimal SAX1 implementation compatible
|
||||
with early expat versions</li>
|
||||
</ul>
|
||||
<p>A partial implementation of <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas Part
|
||||
</ul><p>A partial implementation of <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas Part
|
||||
1: Structure</a> is being worked on but it would be far too early to make any
|
||||
conformance statement about it at the moment.</p>
|
||||
<p>Separate documents:</p>
|
||||
<ul><li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
|
||||
conformance statement about it at the moment.</p><p>Separate documents:</p><ul>
|
||||
<li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
|
||||
implementation of XSLT 1.0 and common extensions like EXSLT for
|
||||
libxml2</li>
|
||||
<li><a href="http://gdome2.cs.unibo.it/">the gdome2 page</a>
|
||||
@ -290,26 +73,5 @@ conformance statement about it at the moment.</p>
|
||||
Digital Signature</a> for libxml2</li>
|
||||
<li>also check the related links section for more related and active
|
||||
projects.</li>
|
||||
</ul>
|
||||
<p> Hosting sponsored by <a href="http://www.aoemedia.de/opensource-cms.html">Open Source CMS services</a> from AOE media.</p>
|
||||
<p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p>
|
||||
<p>
|
||||
<a href="bugs.html">Daniel Veillard</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</ul><p> Hosting sponsored by <a href="http://www.aoemedia.de/opensource-cms.html">Open Source CMS services</a> from AOE media.</p><p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body>
|
||||
</html>
|
||||
|
@ -9,7 +9,8 @@ H3 {font-family: Verdana,Arial,Helvetica}
|
||||
A:link, A:visited, A:active { text-decoration: underline }
|
||||
</style><title>Introduction</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>Introduction</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>This document describes libxml, the <a href="http://www.w3.org/XML/">XML</a> C parser and toolkit developed for the
|
||||
<a href="http://www.gnome.org/">Gnome</a> project. <a href="http://www.w3.org/XML/">XML is a standard</a> for building tag-based
|
||||
structured documents/data.</p><p>Here are some key points about libxml:</p><ul><li>Libxml2 exports Push (progressive) and Pull (blocking) type parser
|
||||
structured documents/data.</p><p>Here are some key points about libxml:</p><ul>
|
||||
<li>Libxml2 exports Push (progressive) and Pull (blocking) type parser
|
||||
interfaces for both XML and HTML.</li>
|
||||
<li>Libxml2 can do DTD validation at parse time, using a parsed document
|
||||
instance, or with an arbitrary DTD.</li>
|
||||
|
@ -16,10 +16,12 @@ API should <a href="#DOM">look at DOM</a>.</p><p>The <a href="html/libxml-parser
|
||||
separated from the <a href="html/libxml-htmlparser.html">HTML parser
|
||||
interfaces</a>. Let's have a look at how the XML parser can be called:</p><h3><a name="Invoking" id="Invoking">Invoking the parser : the pull method</a></h3><p>Usually, the first thing to do is to read an XML input. The parser accepts
|
||||
documents either from in-memory strings or from files. The functions are
|
||||
defined in "parser.h":</p><dl><dt><code>xmlDocPtr xmlParseMemory(char *buffer, int size);</code></dt>
|
||||
defined in "parser.h":</p><dl>
|
||||
<dt><code>xmlDocPtr xmlParseMemory(char *buffer, int size);</code></dt>
|
||||
<dd><p>Parse a null-terminated string containing the document.</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>xmlDocPtr xmlParseFile(const char *filename);</code></dt>
|
||||
</dl><dl>
|
||||
<dt><code>xmlDocPtr xmlParseFile(const char *filename);</code></dt>
|
||||
<dd><p>Parse an XML document contained in a (possibly compressed)
|
||||
file.</p>
|
||||
</dd>
|
||||
@ -88,18 +90,21 @@ adventure".</p><p><strong>NOTE</strong>: XML allows <em>PI</em>s and <em>comment
|
||||
present before the document root, so <code>doc->children</code> may point
|
||||
to an element which is not the document Root Element; a function
|
||||
<code>xmlDocGetRootElement()</code> was added for this purpose.</p><h3><a name="Modifying" id="Modifying">Modifying the tree</a></h3><p>Functions are provided for reading and writing the document content. Here
|
||||
is an excerpt from the <a href="html/libxml-tree.html">tree API</a>:</p><dl><dt><code>xmlAttrPtr xmlSetProp(xmlNodePtr node, const xmlChar *name, const
|
||||
is an excerpt from the <a href="html/libxml-tree.html">tree API</a>:</p><dl>
|
||||
<dt><code>xmlAttrPtr xmlSetProp(xmlNodePtr node, const xmlChar *name, const
|
||||
xmlChar *value);</code></dt>
|
||||
<dd><p>This sets (or changes) an attribute carried by an ELEMENT node.
|
||||
The value can be NULL.</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>const xmlChar *xmlGetProp(xmlNodePtr node, const xmlChar
|
||||
</dl><dl>
|
||||
<dt><code>const xmlChar *xmlGetProp(xmlNodePtr node, const xmlChar
|
||||
*name);</code></dt>
|
||||
<dd><p>This function returns a pointer to new copy of the property
|
||||
content. Note that the user must deallocate the result.</p>
|
||||
</dd>
|
||||
</dl><p>Two functions are provided for reading and writing the text associated
|
||||
with elements:</p><dl><dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, const xmlChar
|
||||
with elements:</p><dl>
|
||||
<dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, const xmlChar
|
||||
*value);</code></dt>
|
||||
<dd><p>This function takes an "external" string and converts it to one
|
||||
text node or possibly to a list of entity and text nodes. All
|
||||
@ -107,7 +112,8 @@ with elements:</p><dl><dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, c
|
||||
internally as entity nodes, hence the result of the function may not be
|
||||
a single node.</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>xmlChar *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int
|
||||
</dl><dl>
|
||||
<dt><code>xmlChar *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int
|
||||
inLine);</code></dt>
|
||||
<dd><p>This function is the inverse of
|
||||
<code>xmlStringGetNodeList()</code>. It generates a new string
|
||||
@ -117,29 +123,36 @@ with elements:</p><dl><dt><code>xmlNodePtr xmlStringGetNodeList(xmlDocPtr doc, c
|
||||
XML encoding in the string, it will substitute it with its value (say,
|
||||
"GNU Network Object Model Environment").</p>
|
||||
</dd>
|
||||
</dl><h3><a name="Saving" id="Saving">Saving a tree</a></h3><p>Basically 3 options are possible:</p><dl><dt><code>void xmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int
|
||||
</dl><h3><a name="Saving" id="Saving">Saving a tree</a></h3><p>Basically 3 options are possible:</p><dl>
|
||||
<dt><code>void xmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int
|
||||
*size);</code></dt>
|
||||
<dd><p>Returns a buffer into which the document has been saved.</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>extern void xmlDocDump(FILE *f, xmlDocPtr doc);</code></dt>
|
||||
</dl><dl>
|
||||
<dt><code>extern void xmlDocDump(FILE *f, xmlDocPtr doc);</code></dt>
|
||||
<dd><p>Dumps a document to an open file descriptor.</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>int xmlSaveFile(const char *filename, xmlDocPtr cur);</code></dt>
|
||||
</dl><dl>
|
||||
<dt><code>int xmlSaveFile(const char *filename, xmlDocPtr cur);</code></dt>
|
||||
<dd><p>Saves the document to a file. In this case, the compression
|
||||
interface is triggered if it has been turned on.</p>
|
||||
</dd>
|
||||
</dl><h3><a name="Compressio" id="Compressio">Compression</a></h3><p>The library transparently handles compression when doing file-based
|
||||
accesses. The level of compression on saves can be turned on either globally
|
||||
or individually for one file:</p><dl><dt><code>int xmlGetDocCompressMode (xmlDocPtr doc);</code></dt>
|
||||
or individually for one file:</p><dl>
|
||||
<dt><code>int xmlGetDocCompressMode (xmlDocPtr doc);</code></dt>
|
||||
<dd><p>Gets the document compression ratio (0-9).</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>void xmlSetDocCompressMode (xmlDocPtr doc, int mode);</code></dt>
|
||||
</dl><dl>
|
||||
<dt><code>void xmlSetDocCompressMode (xmlDocPtr doc, int mode);</code></dt>
|
||||
<dd><p>Sets the document compression ratio.</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>int xmlGetCompressMode(void);</code></dt>
|
||||
</dl><dl>
|
||||
<dt><code>int xmlGetCompressMode(void);</code></dt>
|
||||
<dd><p>Gets the default compression ratio.</p>
|
||||
</dd>
|
||||
</dl><dl><dt><code>void xmlSetCompressMode(int mode);</code></dt>
|
||||
</dl><dl>
|
||||
<dt><code>void xmlSetCompressMode(int mode);</code></dt>
|
||||
<dd><p>Sets the default compression ratio.</p>
|
||||
</dd>
|
||||
</dl><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
|
||||
|
525
doc/news.html
525
doc/news.html
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
libxml2, the list below is not exhaustive. Please contact the <a href="http://mail.gnome.org/mailman/listinfo/xml-bindings">xml-bindings@gnome.org</a>
|
||||
(<a href="http://mail.gnome.org/archives/xml-bindings/">archives</a>) in
|
||||
order to get updates to this list or to discuss the specific topic of libxml2
|
||||
or libxslt wrappers or bindings:</p><ul><li><a href="http://libxmlplusplus.sourceforge.net/">Libxml++</a> seems the
|
||||
or libxslt wrappers or bindings:</p><ul>
|
||||
<li><a href="http://libxmlplusplus.sourceforge.net/">Libxml++</a> seems the
|
||||
most up-to-date C++ bindings for libxml2, check the <a href="http://libxmlplusplus.sourceforge.net/reference/html/hierarchy.html">documentation</a>
|
||||
and the <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/libxmlplusplus/libxml%2b%2b/examples/">examples</a>.</li>
|
||||
<li>There is another <a href="http://libgdome-cpp.berlios.de/">C++ wrapper
|
||||
@ -62,7 +63,8 @@ of the Python bindings</a>.</p><p>Note to people interested in building bindings
|
||||
<a href="libxml2-api.xml">an XML API description file</a> which allows to
|
||||
automate a large part of the Python bindings, this includes function
|
||||
descriptions, enums, structures, typedefs, etc... The Python script used to
|
||||
build the bindings is python/generator.py in the source distribution.</p><p>To install the Python bindings there are 2 options:</p><ul><li>If you use an RPM based distribution, simply install the <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python">libxml2-python
|
||||
build the bindings is python/generator.py in the source distribution.</p><p>To install the Python bindings there are 2 options:</p><ul>
|
||||
<li>If you use an RPM based distribution, simply install the <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-python">libxml2-python
|
||||
RPM</a> (and if needed the <a href="http://rpmfind.net/linux/rpm2html/search.php?query=libxslt-python">libxslt-python
|
||||
RPM</a>).</li>
|
||||
<li>Otherwise use the <a href="ftp://xmlsoft.org/libxml2/python/">libxml2-python
|
||||
@ -89,7 +91,8 @@ if child.name != "foo":
|
||||
doc.freeDoc()</pre><p>The Python module is called libxml2; parseFile is the equivalent of
|
||||
xmlParseFile (most of the bindings are automatically generated, and the xml
|
||||
prefix is removed and the casing convention are kept). All node seen at the
|
||||
binding level share the same subset of accessors:</p><ul><li><code>name</code> : returns the node name</li>
|
||||
binding level share the same subset of accessors:</p><ul>
|
||||
<li><code>name</code> : returns the node name</li>
|
||||
<li><code>type</code> : returns a string indicating the node type</li>
|
||||
<li><code>content</code> : returns the content of the node, it is based on
|
||||
xmlNodeGetContent() and hence is recursive.</li>
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
95
doc/xml.html
95
doc/xml.html
@ -709,6 +709,101 @@ to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p>
|
||||
|
||||
<p>Here is the list of public releases:</p>
|
||||
|
||||
<h3>2.9.1: Apr 19 2013</h3>
|
||||
<ul>
|
||||
<li> Features:<br/>
|
||||
Support for Python3 (Daniel Veillard),<br/>
|
||||
Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh)<br/>
|
||||
</li>
|
||||
|
||||
<li> Documentation:<br/>
|
||||
Add documentation for xmllint --xpath (Daniel Veillard),<br/>
|
||||
Fix the URL of the SAX documentation from James (Daniel Veillard),<br/>
|
||||
Fix spelling of "length". (Michael Wood)<br/>
|
||||
</li>
|
||||
|
||||
<li> Portability:<br/>
|
||||
Fix python bindings with versions older than 2.7 (Daniel Veillard),<br/>
|
||||
rebuild docs:Makefile.am (Roumen Petrov),<br/>
|
||||
elfgcchack.h after rebuild in doc (Roumen Petrov),<br/>
|
||||
elfgcchack for buf module (Roumen Petrov),<br/>
|
||||
Fix a uneeded and wrong extra link parameter (Daniel Veillard),<br/>
|
||||
Few cleanup patches for Windows (Denis Pauk),<br/>
|
||||
Fix rpmbuild --nocheck (Mark Salter),<br/>
|
||||
Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard),<br/>
|
||||
Fix Broken multi-arch support in xml2-config (Daniel Veillard),<br/>
|
||||
Fix a portability issue for GCC < 3.4.0 (Daniel Veillard),<br/>
|
||||
Windows build fixes (Daniel Richard),<br/>
|
||||
Fix a thread portability problem (Friedrich Haubensak),<br/>
|
||||
Downgrade autoconf requirement to 2.63 (Daniel Veillard)<br/>
|
||||
</li>
|
||||
|
||||
<li> Bug Fixes:<br/>
|
||||
Fix a linking error for python bindings (Daniel Veillard),<br/>
|
||||
Fix a couple of return without value (Jüri Aedla),<br/>
|
||||
Improve the hashing functions (Daniel Franke),<br/>
|
||||
Improve handling of xmlStopParser() (Daniel Veillard),<br/>
|
||||
Remove risk of lockup in dictionary initialization (Daniel Veillard),<br/>
|
||||
Activate detection of encoding in external subset (Daniel Veillard),<br/>
|
||||
Fix an output buffer flushing conversion bug (Mikhail Titov),<br/>
|
||||
Fix an old bug in xmlSchemaValidateOneElement (Csaba László),<br/>
|
||||
Fix configure cannot remove messages (Gilles Espinasse),<br/>
|
||||
fix schema validation in combination with xsi:nil (Daniel Veillard),<br/>
|
||||
xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf),<br/>
|
||||
Fix a few problems with setEntityLoader (Alexey Neyman),<br/>
|
||||
Detect excessive entities expansion upon replacement (Daniel Veillard),<br/>
|
||||
Fix the flushing out of raw buffers on encoding conversions (Daniel,<br/>
|
||||
Veillard),<br/>
|
||||
Fix some buffer conversion issues (Daniel Veillard),<br/>
|
||||
When calling xmlNodeDump make sure we grow the buffer quickly (Daniel,<br/>
|
||||
Veillard),<br/>
|
||||
Fix an error in the progressive DTD parsing code (Dan Winship),<br/>
|
||||
xmllint should not load DTD by default when using the reader (Daniel,<br/>
|
||||
Veillard),<br/>
|
||||
Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera),<br/>
|
||||
Fix potential out of bound access (Daniel Veillard),<br/>
|
||||
Fix large parse of file from memory (Daniel Veillard),<br/>
|
||||
Fix a bug in the nsclean option of the parser (Daniel Veillard),<br/>
|
||||
Fix a regression in 2.9.0 breaking validation while streaming (Daniel,<br/>
|
||||
Veillard),<br/>
|
||||
Remove potential calls to exit() (Daniel Veillard)<br/>
|
||||
</li>
|
||||
|
||||
<li> Improvements:<br/>
|
||||
Regenerated API, and testapi, rebuild documentation (Daniel Veillard),<br/>
|
||||
Fix tree iterators broken by 2to3 script (Daniel Veillard),<br/>
|
||||
update all tests for Python3 and Python2 (Daniel Veillard),<br/>
|
||||
A few more fixes for python 3 affecting libxml2.py (Daniel Veillard),<br/>
|
||||
Fix compilation on Python3 (Daniel Veillard),<br/>
|
||||
Converting apibuild.py to python3 (Daniel Veillard),<br/>
|
||||
First pass at starting porting to python3 (Daniel Veillard),<br/>
|
||||
updated configure.in for python3 (Daniel Veillard),<br/>
|
||||
Add support for xpathRegisterVariable in Python (Shaun McCance),<br/>
|
||||
Added a regression tests from bug 694228 data (Daniel Veillard),<br/>
|
||||
Cache presence of '<' in entities content (Daniel Veillard),<br/>
|
||||
Avoid extra processing on entities (Daniel Veillard),<br/>
|
||||
Python binding for xmlRegisterInputCallback (Alexey Neyman),<br/>
|
||||
Python bindings: DOM casts everything to xmlNode (Alexey Neyman),<br/>
|
||||
Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling),<br/>
|
||||
Adding streaming validation to runtest checks (Daniel Veillard),<br/>
|
||||
Add a --pushsmall option to xmllint (Daniel Veillard)<br/>
|
||||
</li>
|
||||
|
||||
<li> Cleanups:<br/>
|
||||
Switched comment in file to UTF-8 encoding (Daniel Veillard),<br/>
|
||||
Extend gitignore (Daniel Veillard),<br/>
|
||||
Silent the new python test on input (Alexey Neyman),<br/>
|
||||
Cleanup of a duplicate test (Daniel Veillard),<br/>
|
||||
Cleanup on duplicate test expressions (Daniel Veillard),<br/>
|
||||
Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick,<br/>
|
||||
Gansterer),<br/>
|
||||
Spec cleanups and a fix for multiarch support (Daniel Veillard),<br/>
|
||||
Silence a clang warning (Daniel Veillard),<br/>
|
||||
Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard),<br/>
|
||||
rand_seed should be static in dict.c (Wouter Van Rooy),<br/>
|
||||
Fix typos in parser comments (Jan Pokorný)<br/>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>2.9.0: Sep 11 2012</h3>
|
||||
<ul>
|
||||
<li> Features:<br/>
|
||||
|
@ -7,13 +7,16 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
||||
H2 {font-family: Verdana,Arial,Helvetica}
|
||||
H3 {font-family: Verdana,Arial,Helvetica}
|
||||
A:link, A:visited, A:active { text-decoration: underline }
|
||||
</style><title>Validation & DTDs</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>Validation & DTDs</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>Table of Content:</p><ol><li><a href="#General5">General overview</a></li>
|
||||
</style><title>Validation & DTDs</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><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></td><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"><h1>The XML C parser and toolkit of Gnome</h1><h2>Validation & DTDs</h2></td></tr></table></td></tr></table></td></tr></table><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><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"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><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"><p>Table of Content:</p><ol>
|
||||
<li><a href="#General5">General overview</a></li>
|
||||
<li><a href="#definition">The definition</a></li>
|
||||
<li><a href="#Simple">Simple rules</a>
|
||||
<ol><li><a href="#reference">How to reference a DTD from a document</a></li>
|
||||
<ol>
|
||||
<li><a href="#reference">How to reference a DTD from a document</a></li>
|
||||
<li><a href="#Declaring">Declaring elements</a></li>
|
||||
<li><a href="#Declaring1">Declaring attributes</a></li>
|
||||
</ol></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><a href="#Some">Some examples</a></li>
|
||||
<li><a href="#validate">How to validate</a></li>
|
||||
<li><a href="#Other">Other resources</a></li>
|
||||
@ -28,7 +31,8 @@ found within your document, what is the formal shape of your document tree
|
||||
expression for the allowed list of children, or mixed content i.e. both text
|
||||
and children). The DTD also defines the valid attributes for all elements and
|
||||
the types of those attributes.</p><h3><a name="definition1" id="definition1">The definition</a></h3><p>The <a href="http://www.w3.org/TR/REC-xml">W3C XML Recommendation</a> (<a href="http://www.xml.com/axml/axml.html">Tim Bray's annotated version of
|
||||
Rev1</a>):</p><ul><li><a href="http://www.w3.org/TR/REC-xml#elemdecls">Declaring
|
||||
Rev1</a>):</p><ul>
|
||||
<li><a href="http://www.w3.org/TR/REC-xml#elemdecls">Declaring
|
||||
elements</a></li>
|
||||
<li><a href="http://www.w3.org/TR/REC-xml#attdecls">Declaring
|
||||
attributes</a></li>
|
||||
@ -40,7 +44,8 @@ harder to design. I will just focus on DTDs for a formats with a fixed simple
|
||||
structure. It is just a set of basic rules, and definitely not exhaustive nor
|
||||
usable for complex DTD design.</p><h4><a name="reference1" id="reference1">How to reference a DTD from a document</a>:</h4><p>Assuming the top element of the document is <code>spec</code> and the dtd
|
||||
is placed in the file <code>mydtd</code> in the subdirectory
|
||||
<code>dtds</code> of the directory from where the document were loaded:</p><p><code><!DOCTYPE spec SYSTEM "dtds/mydtd"></code></p><p>Notes:</p><ul><li>The system string is actually an URI-Reference (as defined in <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>) so you can use a
|
||||
<code>dtds</code> of the directory from where the document were loaded:</p><p><code><!DOCTYPE spec SYSTEM "dtds/mydtd"></code></p><p>Notes:</p><ul>
|
||||
<li>The system string is actually an URI-Reference (as defined in <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>) so you can use a
|
||||
full URL string indicating the location of your DTD on the Web. This is a
|
||||
really good thing to do if you want others to validate your document.</li>
|
||||
<li>It is also possible to associate a <code>PUBLIC</code> identifier (a
|
||||
@ -76,7 +81,8 @@ of type <code>ID</code>, usable for reference from attribute of type
|
||||
IDREF:</p><p><code><!ATTLIST chapter id ID #IMPLIED></code></p><p>The last value of an attribute definition can be <code>#REQUIRED
|
||||
</code>meaning that the attribute has to be given, <code>#IMPLIED</code>
|
||||
meaning that it is optional, or the default value (possibly prefixed by
|
||||
<code>#FIXED</code> if it is the only allowed).</p><p>Notes:</p><ul><li>Usually the attributes pertaining to a given element are declared in a
|
||||
<code>#FIXED</code> if it is the only allowed).</p><p>Notes:</p><ul>
|
||||
<li>Usually the attributes pertaining to a given element are declared in a
|
||||
single expression, but it is just a convention adopted by a lot of DTD
|
||||
writers:
|
||||
<pre><!ATTLIST termdef
|
||||
@ -94,7 +100,8 @@ For example the following validates a copy of the first revision of the XML
|
||||
1.0 specification:</p><p><code>xmllint --valid --noout test/valid/REC-xml-19980210.xml</code></p><p>the -- noout is used to disable output of the resulting tree.</p><p>The <code>--dtdvalid dtd</code> allows validation of the document(s)
|
||||
against a given DTD.</p><p>Libxml2 exports an API to handle DTDs and validation, check the <a href="http://xmlsoft.org/html/libxml-valid.html">associated
|
||||
description</a>.</p><h3><a name="Other1" id="Other1">Other resources</a></h3><p>DTDs are as old as SGML. So there may be a number of examples on-line, I
|
||||
will just list one for now, others pointers welcome:</p><ul><li><a href="http://www.xml101.com:8081/dtd/">XML-101 DTD</a></li>
|
||||
will just list one for now, others pointers welcome:</p><ul>
|
||||
<li><a href="http://www.xml101.com:8081/dtd/">XML-101 DTD</a></li>
|
||||
</ul><p>I suggest looking at the examples found under test/valid/dtd and any of
|
||||
the large number of books available on XML. The dia example in test/valid
|
||||
should be both simple and complete enough to allow you to build your own.</p><p></p><p><a href="bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user