mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-10-24 13:33:01 +03:00
preparing release of 2.6.26 Daniel
* configure.ini NEWS doc//* libxml.spec.in : preparing release of 2.6.26 Daniel
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
Tue Jun 6 17:50:43 CEST 2006 Daniel Veillard <daniel@veillard.com>
|
||||||
|
|
||||||
|
* configure.ini NEWS doc//* libxml.spec.in : preparing release of 2.6.26
|
||||||
|
|
||||||
Tue Jun 6 17:25:23 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
|
Tue Jun 6 17:25:23 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
|
||||||
|
|
||||||
* xpath.c: Fixed self-invented a segfault in xmlXPathCtxtCompile(),
|
* xpath.c: Fixed self-invented a segfault in xmlXPathCtxtCompile(),
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ AC_CANONICAL_HOST
|
|||||||
|
|
||||||
LIBXML_MAJOR_VERSION=2
|
LIBXML_MAJOR_VERSION=2
|
||||||
LIBXML_MINOR_VERSION=6
|
LIBXML_MINOR_VERSION=6
|
||||||
LIBXML_MICRO_VERSION=25
|
LIBXML_MICRO_VERSION=26
|
||||||
LIBXML_MICRO_VERSION_SUFFIX=
|
LIBXML_MICRO_VERSION_SUFFIX=
|
||||||
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
|
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
|
||||||
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
|
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
|
||||||
|
|||||||
15
doc/DOM.html
15
doc/DOM.html
File diff suppressed because one or more lines are too long
319
doc/FAQ.html
319
doc/FAQ.html
@@ -12,51 +12,49 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<li><a href="FAQ.html#Compilatio">Compilation</a></li>
|
<li><a href="FAQ.html#Compilatio">Compilation</a></li>
|
||||||
<li><a href="FAQ.html#Developer">Developer corner</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">MITLicense</a>;
|
<p>libxml2 is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MITLicense</a>;see
|
||||||
see the file Copyright in the distribution for the precisewording</p>
|
the file Copyright in the distribution for the precisewording</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>Can I embed libxml2 in a proprietary application ?</em>
|
<li><em>Can I embed libxml2 in a proprietary application ?</em>
|
||||||
<p>Yes. The MIT License allows you to keep proprietary the changes
|
<p>Yes. The MIT License allows you to keep proprietary the changesyoumade
|
||||||
youmade to libxml, but it would be graceful to send-back bug fixes
|
to libxml, but it would be graceful to send-back bug fixesandimprovements
|
||||||
andimprovements as patches for possible incorporation in the
|
as patches for possible incorporation in themaindevelopment tree.</p>
|
||||||
maindevelopment tree.</p>
|
|
||||||
</li>
|
</li>
|
||||||
</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol><li><strong><span style="background-color: #FF0000">Do Not
|
</ol><h3><a name="Installati" id="Installati">Installation</a></h3><ol><li><strong><span style="background-color: #FF0000">Do
|
||||||
Uselibxml1</span></strong>, use libxml2</li>
|
NotUselibxml1</span></strong>, use libxml2</li>
|
||||||
<li><em>Where can I get libxml</em>?
|
<li><em>Where can I get libxml</em>?
|
||||||
<p>The original distribution comes from <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>or <a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/">gnome.org</a></p>
|
<p>The original distribution comes from <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>or <a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/">gnome.org</a></p>
|
||||||
<p>Most Linux and BSD distributions include libxml, this is probably
|
<p>Most Linux and BSD distributions include libxml, this is
|
||||||
thesafer way for end-users to use libxml.</p>
|
probablythesafer way for end-users to use libxml.</p>
|
||||||
<p>David Doolin provides precompiled Windows versions at <a href="http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/ ">http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/</a></p>
|
<p>David Doolin provides precompiled Windows versions at <a href="http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/ ">http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/</a></p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>I see libxml and libxml2 releases, which one should I install ?</em>
|
<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
|
<ul><li>If you are not constrained by backward compatibility
|
||||||
withexisting applications, install libxml2 only</li>
|
issueswithexisting applications, install libxml2 only</li>
|
||||||
<li>If you are not doing development, you can safely install
|
<li>If you are not doing development, you can safely
|
||||||
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>arecompatible
|
installboth.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>arecompatible(this
|
||||||
(this is not the case for development packages).</li>
|
is not the case for development packages).</li>
|
||||||
<li>If you are a developer and your system provides separate
|
<li>If you are a developer and your system provides
|
||||||
packagingfor shared libraries and the development components, it is
|
separatepackagingfor shared libraries and the development components,
|
||||||
possibleto install libxml and libxml2, and also <a href="http://rpmfind.net/linux/RPM/libxml-devel.html">libxml-devel</a>and
|
it ispossibleto install libxml and libxml2, and also <a href="http://rpmfind.net/linux/RPM/libxml-devel.html">libxml-devel</a>and<a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>toofor
|
||||||
<a href="http://rpmfind.net/linux/RPM/libxml2-devel.html">libxml2-devel</a>too
|
libxml2 >= 2.3.0</li>
|
||||||
for libxml2 >= 2.3.0</li>
|
<li>If you are developing a new application, please
|
||||||
<li>If you are developing a new application, please develop
|
developagainstlibxml2(-devel)</li>
|
||||||
againstlibxml2(-devel)</li>
|
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><em>I can't install the libxml package, it conflicts with libxml0</em>
|
<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
|
<p>You probably have an old libxml0 package used to provide
|
||||||
sharedlibrary for libxml.so.0, you can probably safely remove it. The
|
thesharedlibrary for libxml.so.0, you can probably safely remove it.
|
||||||
libxmlpackages provided on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>providelibxml.so.0</p>
|
Thelibxmlpackages provided on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>providelibxml.so.0</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>I can't install the libxml(2) RPM package due to
|
<li><em>I can't install the libxml(2) RPM package due
|
||||||
faileddependencies</em>
|
tofaileddependencies</em>
|
||||||
<p>The most generic solution is to re-fetch the latest src.rpm ,
|
<p>The most generic solution is to re-fetch the latest src.rpm
|
||||||
andrebuild it locally with</p>
|
,andrebuild it locally with</p>
|
||||||
<p><code>rpm --rebuild libxml(2)-xxx.src.rpm</code>.</p>
|
<p><code>rpm --rebuild libxml(2)-xxx.src.rpm</code>.</p>
|
||||||
<p>If everything goes well it will generate two binary rpm packages
|
<p>If everything goes well it will generate two binary rpm
|
||||||
(oneproviding the shared libs and xmllint, and the other one, the
|
packages(oneproviding the shared libs and xmllint, and the other one,
|
||||||
-develpackage, providing includes, static libraries and scripts needed to
|
the-develpackage, providing includes, static libraries and scripts needed
|
||||||
buildapplications with libxml(2)) that you can install locally.</p>
|
tobuildapplications with libxml(2)) that you can install locally.</p>
|
||||||
</li>
|
</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>As most UNIX libraries libxml2 follows the "standard":</p>
|
||||||
@@ -67,107 +65,106 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<p><code>./configure [possible options]</code></p>
|
<p><code>./configure [possible options]</code></p>
|
||||||
<p><code>make</code></p>
|
<p><code>make</code></p>
|
||||||
<p><code>make install</code></p>
|
<p><code>make install</code></p>
|
||||||
<p>At that point you may have to rerun ldconfig or a similar utility
|
<p>At that point you may have to rerun ldconfig or a similar
|
||||||
toupdate your list of installed shared libs.</p>
|
utilitytoupdate your list of installed shared libs.</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>What other libraries are needed to compile/install libxml2 ?</em>
|
<li><em>What other libraries are needed to compile/install libxml2 ?</em>
|
||||||
<p>Libxml2 does not require any other library, the normal C ANSI
|
<p>Libxml2 does not require any other library, the normal C ANSIAPIshould
|
||||||
APIshould be sufficient (please report any violation to this rule you
|
be sufficient (please report any violation to this rule youmayfind).</p>
|
||||||
mayfind).</p>
|
<p>However if found at configuration time libxml2 will detect and
|
||||||
<p>However if found at configuration time libxml2 will detect and use
|
usethefollowing libs:</p>
|
||||||
thefollowing libs:</p>
|
<ul><li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a>:ahighly
|
||||||
<ul><li><a href="http://www.info-zip.org/pub/infozip/zlib/">libz</a>:
|
portable and available widely compression library.</li>
|
||||||
ahighly portable and available widely compression library.</li>
|
<li>iconv: a powerful character encoding conversion library.
|
||||||
<li>iconv: a powerful character encoding conversion library. It
|
Itisincluded by default in recent glibc libraries, so it doesn't
|
||||||
isincluded by default in recent glibc libraries, so it doesn't need
|
needtobe installed specifically on Linux. It now seems a <a href="http://www.opennc.org/onlinepubs/7908799/xsh/iconv.html">partofthe
|
||||||
tobe installed specifically on Linux. It now seems a <a href="http://www.opennc.org/onlinepubs/7908799/xsh/iconv.html">partof
|
official UNIX</a>specification. Here is one <a href="http://www.gnu.org/software/libiconv/">implementation
|
||||||
the official UNIX</a>specification. Here is one <a href="http://www.gnu.org/software/libiconv/">implementation of
|
ofthelibrary</a>which source can be found <a href="ftp://ftp.ilog.fr/pub/Users/haible/gnu/">here</a>.</li>
|
||||||
thelibrary</a>which source can be found <a href="ftp://ftp.ilog.fr/pub/Users/haible/gnu/">here</a>.</li>
|
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li><em>Make check fails on some platforms</em>
|
<li><em>Make check fails on some platforms</em>
|
||||||
<p>Sometimes the regression tests' results don't completely match
|
<p>Sometimes the regression tests' results don't completely matchthevalue
|
||||||
thevalue produced by the parser, and the makefile uses diff to print
|
produced by the parser, and the makefile uses diff to printthedelta. On
|
||||||
thedelta. On some platforms the diff return breaks the compilation
|
some platforms the diff return breaks the compilationprocess;if the diff
|
||||||
process;if the diff is small this is probably not a serious problem.</p>
|
is small this is probably not a serious problem.</p>
|
||||||
<p>Sometimes (especially on Solaris) make checks fail due to
|
<p>Sometimes (especially on Solaris) make checks fail due tolimitationsin
|
||||||
limitationsin make. Try using GNU-make instead.</p>
|
make. Try using GNU-make instead.</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>I use the CVS version and there is no configure script</em>
|
<li><em>I use the CVS version and there is no configure script</em>
|
||||||
<p>The configure script (and other Makefiles) are generated. Use
|
<p>The configure script (and other Makefiles) are generated.
|
||||||
theautogen.sh script to regenerate the configure script and
|
Usetheautogen.sh script to regenerate the configure script
|
||||||
Makefiles,like:</p>
|
andMakefiles,like:</p>
|
||||||
<p><code>./autogen.sh --prefix=/usr --disable-shared</code></p>
|
<p><code>./autogen.sh --prefix=/usr --disable-shared</code></p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>I have troubles when running make tests with gcc-3.0</em>
|
<li><em>I have troubles when running make tests with gcc-3.0</em>
|
||||||
<p>It seems the initial release of gcc-3.0 has a problem with
|
<p>It seems the initial release of gcc-3.0 has a problem withtheoptimizer
|
||||||
theoptimizer which miscompiles the URI module. Please use
|
which miscompiles the URI module. Please useanothercompiler.</p>
|
||||||
anothercompiler.</p>
|
|
||||||
</li>
|
</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
|
<p>Usually the problem comes from the fact that the compiler
|
||||||
getthe right compilation or linking flags. There is a small shell
|
doesn'tgetthe right compilation or linking flags. There is a small
|
||||||
script<code>xml2-config</code>which is installed as part of libxml2
|
shellscript<code>xml2-config</code>which is installed as part of
|
||||||
usualinstall process which provides those flags. Use</p>
|
libxml2usualinstall process which provides those flags. Use</p>
|
||||||
<p><code>xml2-config --cflags</code></p>
|
<p><code>xml2-config --cflags</code></p>
|
||||||
<p>to get the compilation flags and</p>
|
<p>to get the compilation flags and</p>
|
||||||
<p><code>xml2-config --libs</code></p>
|
<p><code>xml2-config --libs</code></p>
|
||||||
<p>to get the linker flags. Usually this is done directly from
|
<p>to get the linker flags. Usually this is done directly fromtheMakefile
|
||||||
theMakefile as:</p>
|
as:</p>
|
||||||
<p><code>CFLAGS=`xml2-config --cflags`</code></p>
|
<p><code>CFLAGS=`xml2-config --cflags`</code></p>
|
||||||
<p><code>LIBS=`xml2-config --libs`</code></p>
|
<p><code>LIBS=`xml2-config --libs`</code></p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>I want to install my own copy of libxml2 in my home directory
|
<li><em>I want to install my own copy of libxml2 in my home
|
||||||
andlink my programs against it, but it doesn't work</em>
|
directoryandlink my programs against it, but it doesn't work</em>
|
||||||
<p>There are many different ways to accomplish this. Here is one way
|
<p>There are many different ways to accomplish this. Here is one waytodo
|
||||||
todo this under Linux. Suppose your home directory is
|
this under Linux. Suppose your home directory
|
||||||
<code>/home/user.</code>Then:</p>
|
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>unpack the libxml2 distribution into that subdirectory</li>
|
||||||
<li>chdir into the unpacked distribution(<code>/home/user/myxml/libxml2
|
<li>chdir into the unpacked
|
||||||
</code>)</li>
|
distribution(<code>/home/user/myxml/libxml2</code>)</li>
|
||||||
<li>configure the library using the "<code>--prefix</code>"
|
<li>configure the library using the
|
||||||
switch,specifying an installation subdirectory
|
"<code>--prefix</code>"switch,specifying an installation
|
||||||
in<code>/home/user/myxml</code>, e.g.
|
subdirectoryin<code>/home/user/myxml</code>, e.g.
|
||||||
<p><code>./configure --prefix
|
<p><code>./configure
|
||||||
/home/user/myxml/xmlinst</code>{otherconfiguration options}</p>
|
--prefix/home/user/myxml/xmlinst</code>{otherconfiguration
|
||||||
|
options}</p>
|
||||||
</li>
|
</li>
|
||||||
<li>now run <code>make</code>followed by <code>make install</code></li>
|
<li>now run <code>make</code>followed by <code>make install</code></li>
|
||||||
<li>At this point, the installation subdirectory contains the
|
<li>At this point, the installation subdirectory contains
|
||||||
complete"private" include files, library files and binary program
|
thecomplete"private" include files, library files and binary
|
||||||
files (e.g.xmllint), located in
|
programfiles (e.g.xmllint), located in
|
||||||
<p><code>/home/user/myxml/xmlinst/lib,/home/user/myxml/xmlinst/include
|
<p><code>/home/user/myxml/xmlinst/lib,/home/user/myxml/xmlinst/include</code>and
|
||||||
</code>and <code>/home/user/myxml/xmlinst/bin</code></p>
|
<code>/home/user/myxml/xmlinst/bin</code></p>
|
||||||
respectively.</li>
|
respectively.</li>
|
||||||
<li>In order to use this "private" library, you should first add it
|
<li>In order to use this "private" library, you should first add
|
||||||
tothe beginning of your default PATH (so that your own private
|
ittothe beginning of your default PATH (so that your own
|
||||||
programfiles such as xmllint will be used instead of the normal
|
privateprogramfiles such as xmllint will be used instead of the
|
||||||
systemones). To do this, the Bash command would be
|
normalsystemones). To do this, the Bash command would be
|
||||||
<p><code>export PATH=/home/user/myxml/xmlinst/bin:$PATH</code></p>
|
<p><code>export PATH=/home/user/myxml/xmlinst/bin:$PATH</code></p>
|
||||||
</li>
|
</li>
|
||||||
<li>Now suppose you have a program <code>test1.c</code>that you
|
<li>Now suppose you have a program <code>test1.c</code>that
|
||||||
wouldlike to compile with your "private" library. Simply compile it
|
youwouldlike to compile with your "private" library. Simply compile
|
||||||
usingthe command
|
itusingthe command
|
||||||
<p><code>gcc `xml2-config --cflags --libs` -o test test.c</code></p>
|
<p><code>gcc `xml2-config --cflags --libs` -o test test.c</code></p>
|
||||||
Note that, because your PATH has been set with
|
Note that, because your PATH has been set
|
||||||
<code>/home/user/myxml/xmlinst/bin</code>at the beginning, the
|
with<code>/home/user/myxml/xmlinst/bin</code>at the beginning,
|
||||||
xml2-configprogram which you just installed will be used instead of
|
thexml2-configprogram which you just installed will be used instead
|
||||||
the systemdefault one, and this will <em>automatically</em>get the
|
ofthe systemdefault one, and this will <em>automatically</em>get
|
||||||
correctlibraries linked with your program.</li>
|
thecorrectlibraries linked with your program.</li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
|
|
||||||
<p></p>
|
<p></p>
|
||||||
<li><em>xmlDocDump() generates output on one line.</em>
|
<li><em>xmlDocDump() generates output on one line.</em>
|
||||||
<p>Libxml2 will not <strong>invent</strong>spaces in the content of
|
<p>Libxml2 will not <strong>invent</strong>spaces in the content
|
||||||
adocument since <strong>all spaces in the content of a document
|
ofadocument since <strong>all spaces in the content of a
|
||||||
aresignificant</strong>. If you build a tree from the API and
|
documentaresignificant</strong>. If you build a tree from the API
|
||||||
wantindentation:</p>
|
andwantindentation:</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
|
<li>the dangerous way is to ask libxml2 to add those blanks
|
||||||
yourcontent <strong>modifying the content of your document in
|
toyourcontent <strong>modifying the content of your document
|
||||||
theprocess</strong>. The result may not be what you expect. There
|
intheprocess</strong>. The result may not be what you expect.
|
||||||
is<strong>NO</strong>way to guarantee that such a modification
|
Thereis<strong>NO</strong>way to guarantee that such a
|
||||||
won'taffect other parts of the content of your document. See <a href="http://xmlsoft.org/html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault()</a>and
|
modificationwon'taffect other parts of the content of your document.
|
||||||
<a href="http://xmlsoft.org/html/libxml-tree.html#xmlSaveFormatFile">xmlSaveFormatFile()</a></li>
|
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>
|
||||||
<li>Extra nodes in the document:
|
<li>Extra nodes in the document:
|
||||||
<p><em>For a XML file as below:</em></p>
|
<p><em>For a XML file as below:</em></p>
|
||||||
@@ -176,10 +173,10 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<NODE CommFlag="0"/>
|
<NODE CommFlag="0"/>
|
||||||
<NODE CommFlag="1"/>
|
<NODE CommFlag="1"/>
|
||||||
</PLAN></pre>
|
</PLAN></pre>
|
||||||
<p><em>after parsing it with the
|
<p><em>after parsing it with
|
||||||
functionpxmlDoc=xmlParseFile(...);</em></p>
|
thefunctionpxmlDoc=xmlParseFile(...);</em></p>
|
||||||
<p><em>I want to the get the content of the first node (node with
|
<p><em>I want to the get the content of the first node (node
|
||||||
theCommFlag="0")</em></p>
|
withtheCommFlag="0")</em></p>
|
||||||
<p><em>so I did it as following;</em></p>
|
<p><em>so I did it as following;</em></p>
|
||||||
<pre>xmlNodePtr pnode;
|
<pre>xmlNodePtr pnode;
|
||||||
pnode=pxmlDoc->children->children;</pre>
|
pnode=pxmlDoc->children->children;</pre>
|
||||||
@@ -187,64 +184,62 @@ pnode=pxmlDoc->children->children;</pre>
|
|||||||
<pre>pnode=pxmlDoc->children->children->next;</pre>
|
<pre>pnode=pxmlDoc->children->children->next;</pre>
|
||||||
<p><em>then it works. Can someone explain it to me.</em></p>
|
<p><em>then it works. Can someone explain it to me.</em></p>
|
||||||
<p></p>
|
<p></p>
|
||||||
<p>In XML all characters in the content of the document are
|
<p>In XML all characters in the content of the document
|
||||||
significant<strong>including blanks and formatting line
|
aresignificant<strong>including blanks and formatting
|
||||||
breaks</strong>.</p>
|
linebreaks</strong>.</p>
|
||||||
<p>The extra nodes you are wondering about are just that, text nodes
|
<p>The extra nodes you are wondering about are just that, text
|
||||||
withthe formatting spaces which are part of the document but that people
|
nodeswiththe formatting spaces which are part of the document but that
|
||||||
tendto forget. There is a function <a href="http://xmlsoft.org/html/libxml-parser.html">xmlKeepBlanksDefault()</a>to
|
peopletendto forget. There is a function <a href="http://xmlsoft.org/html/libxml-parser.html">xmlKeepBlanksDefault()</a>toremove
|
||||||
remove those at parse time, but that's an heuristic, and itsuse should be
|
those at parse time, but that's an heuristic, and itsuse should belimited
|
||||||
limited to cases where you are certain there is nomixed-content in the
|
to cases where you are certain there is nomixed-content in
|
||||||
document.</p>
|
thedocument.</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>I get compilation errors of existing code like when
|
<li><em>I get compilation errors of existing code like
|
||||||
accessing<strong>root</strong>or <strong>child fields</strong>of
|
whenaccessing<strong>root</strong>or <strong>child
|
||||||
nodes.</em>
|
fields</strong>ofnodes.</em>
|
||||||
<p>You are compiling code developed for libxml version 1 and using
|
<p>You are compiling code developed for libxml version 1 and
|
||||||
alibxml2 development environment. Either switch back to libxml v1 devel
|
usingalibxml2 development environment. Either switch back to libxml v1
|
||||||
oreven better fix the code to compile with libxml2 (or both) by <a href="upgrade.html">following the instructions</a>.</p>
|
develoreven better fix the code to compile with libxml2 (or both) by <a href="upgrade.html">following the instructions</a>.</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>I get compilation errors about non
|
<li><em>I get compilation errors about
|
||||||
existing<strong>xmlRootNode</strong>or
|
nonexisting<strong>xmlRootNode</strong>or<strong>xmlChildrenNode</strong>fields.</em>
|
||||||
<strong>xmlChildrenNode</strong>fields.</em>
|
<p>The source code you are using has been <a href="upgrade.html">upgraded</a>to be able to compile with both
|
||||||
<p>The source code you are using has been <a href="upgrade.html">upgraded</a>to be able to compile with both libxmland
|
libxmlandlibxml2, but you need to install a more recent
|
||||||
libxml2, but you need to install a more recent version:libxml(-devel)
|
version:libxml(-devel)>= 1.8.8 or libxml2(-devel) >= 2.1.0</p>
|
||||||
>= 1.8.8 or libxml2(-devel) >= 2.1.0</p>
|
|
||||||
</li>
|
</li>
|
||||||
<li><em>XPath implementation looks seriously broken</em>
|
<li><em>XPath implementation looks seriously broken</em>
|
||||||
<p>XPath implementation prior to 2.3.0 was really incomplete. Upgrade toa
|
<p>XPath implementation prior to 2.3.0 was really incomplete. Upgrade
|
||||||
recent version, there are no known bugs in the current version.</p>
|
toarecent version, there are no known bugs in the current version.</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>The example provided in the web page does not compile.</em>
|
<li><em>The example provided in the web page does not compile.</em>
|
||||||
<p>It's hard to maintain the documentation in sync with the
|
<p>It's hard to maintain the documentation in sync with
|
||||||
code<grin/> ...</p>
|
thecode<grin/> ...</p>
|
||||||
<p>Check the previous points 1/ and 2/ raised before, and please
|
<p>Check the previous points 1/ and 2/ raised before, and
|
||||||
sendpatches.</p>
|
pleasesendpatches.</p>
|
||||||
</li>
|
</li>
|
||||||
<li><em>Where can I get more examples and information than provided on
|
<li><em>Where can I get more examples and information than provided
|
||||||
theweb page?</em>
|
ontheweb page?</em>
|
||||||
<p>Ideally a libxml2 book would be nice. I have no such plan ... But
|
<p>Ideally a libxml2 book would be nice. I have no such plan ...
|
||||||
youcan:</p>
|
Butyoucan:</p>
|
||||||
<ul><li>check more deeply the <a href="html/libxml-lib.html">existinggenerated doc</a></li>
|
<ul><li>check more deeply the <a href="html/libxml-lib.html">existinggenerated doc</a></li>
|
||||||
<li>have a look at <a href="examples/index.html">the set
|
<li>have a look at <a href="examples/index.html">the
|
||||||
ofexamples</a>.</li>
|
setofexamples</a>.</li>
|
||||||
<li>look for examples of use for libxml2 function using the Gnome
|
<li>look for examples of use for libxml2 function using the
|
||||||
code.For example the following will query the full Gnome CVS base for
|
Gnomecode.For example the following will query the full Gnome CVS
|
||||||
theuse of the <strong>xmlAddChild()</strong>function:
|
base fortheuse of the <strong>xmlAddChild()</strong>function:
|
||||||
<p><a href="http://cvs.gnome.org/lxr/search?string=xmlAddChild">http://cvs.gnome.org/lxr/search?string=xmlAddChild</a></p>
|
<p><a href="http://cvs.gnome.org/lxr/search?string=xmlAddChild">http://cvs.gnome.org/lxr/search?string=xmlAddChild</a></p>
|
||||||
<p>This may be slow, a large hardware donation to the gnome
|
<p>This may be slow, a large hardware donation to the
|
||||||
projectcould cure this :-)</p>
|
gnomeprojectcould cure this :-)</p>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=gnome-xml">Browsethe
|
<li><a href="http://cvs.gnome.org/bonsai/rview.cgi?cvsroot=/cvs/gnome&dir=gnome-xml">Browsethelibxml2
|
||||||
libxml2 source</a>, I try to write code as clean and documentedas
|
source</a>, I try to write code as clean and documentedaspossible, so
|
||||||
possible, so looking at it may be helpful. In particular the codeof
|
looking at it may be helpful. In particular the codeofxmllint.c and
|
||||||
xmllint.c and of the various testXXX.c test programs shouldprovide
|
of the various testXXX.c test programs shouldprovidegood examples of
|
||||||
good examples of how to do things with the library.</li>
|
how to do things with the library.</li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li>What about C++ ?
|
<li>What about C++ ?
|
||||||
<p>libxml2 is written in pure C in order to allow easy reuse on a
|
<p>libxml2 is written in pure C in order to allow easy reuse on anumberof
|
||||||
numberof platforms, including embedded systems. I don't intend to convert
|
platforms, including embedded systems. I don't intend to converttoC++.</p>
|
||||||
toC++.</p>
|
|
||||||
<p>There is however a C++ wrapper which may fulfill your needs:</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>Website: <a href="http://libxmlplusplus.sourceforge.net/">http://libxmlplusplus.sourceforge.net/</a></p>
|
||||||
@@ -258,10 +253,10 @@ pnode=pxmlDoc->children->children;</pre>
|
|||||||
-->
|
-->
|
||||||
</ul></li>
|
</ul></li>
|
||||||
<li>How to validate a document a posteriori ?
|
<li>How to validate a document a posteriori ?
|
||||||
<p>It is possible to validate documents which had not been validated
|
<p>It is possible to validate documents which had not been
|
||||||
atinitial parsing time or documents which have been built from
|
validatedatinitial parsing time or documents which have been built
|
||||||
scratchusing the API. Use the <a href="http://xmlsoft.org/html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd()</a>function.
|
fromscratchusing the API. Use the <a href="http://xmlsoft.org/html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd()</a>function.It
|
||||||
It is also possible to simply add a DTD to an existingdocument:</p>
|
is also possible to simply add a DTD to an existingdocument:</p>
|
||||||
<pre>xmlDocPtr doc; /* your existing document */
|
<pre>xmlDocPtr doc; /* your existing document */
|
||||||
xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
|
xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
|
||||||
|
|
||||||
@@ -273,10 +268,10 @@ xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
|
|||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
<li>So what is this funky "xmlChar" used all the time?
|
<li>So what is this funky "xmlChar" used all the time?
|
||||||
<p>It is a null terminated sequence of utf-8 characters. And only
|
<p>It is a null terminated sequence of utf-8 characters. And
|
||||||
utf-8!You need to convert strings encoded in different ways to utf-8
|
onlyutf-8!You need to convert strings encoded in different ways to
|
||||||
beforepassing them to the API. This can be accomplished with the iconv
|
utf-8beforepassing them to the API. This can be accomplished with the
|
||||||
libraryfor instance.</p>
|
iconvlibraryfor instance.</p>
|
||||||
</li>
|
</li>
|
||||||
<li>etc ...</li>
|
<li>etc ...</li>
|
||||||
</ol><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>
|
</ol><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>
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
A:link, A:visited, A:active { text-decoration: underline }
|
||||||
</style><title>XML</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>XML</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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><a href="http://www.w3.org/TR/REC-xml">XML is a
|
</style><title>XML</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>XML</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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><a href="http://www.w3.org/TR/REC-xml">XML is astandard</a>formarkup-based
|
||||||
standard</a>formarkup-based structured documents. Here is <a name="example" id="example">an example XMLdocument</a>:</p><pre><?xml version="1.0"?>
|
structured documents. Here is <a name="example" id="example">an example
|
||||||
|
XMLdocument</a>:</p><pre><?xml version="1.0"?>
|
||||||
<EXAMPLE prop1="gnome is great" prop2="&amp; linux too">
|
<EXAMPLE prop1="gnome is great" prop2="&amp; linux too">
|
||||||
<head>
|
<head>
|
||||||
<title>Welcome to Gnome</title>
|
<title>Welcome to Gnome</title>
|
||||||
@@ -19,16 +20,17 @@ standard</a>formarkup-based structured documents. Here is <a name="example" id="
|
|||||||
<image href="linus.gif"/>
|
<image href="linus.gif"/>
|
||||||
<p>...</p>
|
<p>...</p>
|
||||||
</chapter>
|
</chapter>
|
||||||
</EXAMPLE></pre><p>The first line specifies that it is an XML document and gives
|
</EXAMPLE></pre><p>The first line specifies that it is an XML document and
|
||||||
usefulinformation about its encoding. Then the rest of the document is a
|
givesusefulinformation about its encoding. Then the rest of the document is
|
||||||
textformat whose structure is specified by tags between brackets.
|
atextformat whose structure is specified by tags between
|
||||||
<strong>Eachtag opened has to be closed</strong>. XML is pedantic about this.
|
brackets.<strong>Eachtag opened has to be closed</strong>. XML is pedantic
|
||||||
However, ifa tag is empty (no content), a single tag can serve as both the
|
about this.However, ifa tag is empty (no content), a single tag can serve as
|
||||||
opening andclosing tag if it ends with <code>/></code>rather than
|
both theopening andclosing tag if it ends with <code>/></code>rather
|
||||||
with<code>></code>. Note that, for example, the image tag has no content
|
thanwith<code>></code>. Note that, for example, the image tag has no
|
||||||
(justan attribute) and is closed by ending the tag with
|
content(justan attribute) and is closed by ending the tag
|
||||||
<code>/></code>.</p><p>XML can be applied successfully to a wide range of tasks, ranging fromlong
|
with<code>/></code>.</p><p>XML can be applied successfully to a wide range of tasks, ranging
|
||||||
term structured document maintenance (where it follows the steps ofSGML) to
|
fromlongterm structured document maintenance (where it follows the steps
|
||||||
simple data encoding mechanisms like configuration file formatting(glade),
|
ofSGML) tosimple data encoding mechanisms like configuration file
|
||||||
spreadsheets (gnumeric), or even shorter lived documents such asWebDAV where
|
formatting(glade),spreadsheets (gnumeric), or even shorter lived documents
|
||||||
it is used to encode remote calls between a client and aserver.</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>
|
such asWebDAV whereit is used to encode remote calls between a client and
|
||||||
|
aserver.</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>
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
A:link, A:visited, A:active { text-decoration: underline }
|
||||||
</style><title>XSLT</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>XSLT</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>Check <a href="http://xmlsoft.org/XSLT">the separate libxslt page</a></p><p><a href="http://www.w3.org/TR/xslt">XSL Transformations</a>, is alanguage
|
</style><title>XSLT</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>XSLT</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>Check <a href="http://xmlsoft.org/XSLT">the separate libxslt page</a></p><p><a href="http://www.w3.org/TR/xslt">XSL Transformations</a>, is
|
||||||
for transforming XML documents into other XML documents (orHTML/textual
|
alanguagefor transforming XML documents into other XML documents
|
||||||
output).</p><p>A separate library called libxslt is available implementing XSLT-1.0
|
(orHTML/textualoutput).</p><p>A separate library called libxslt is available implementing
|
||||||
forlibxml2. This module "libxslt" too can be found in the Gnome CVS base.</p><p>You can check the progresses on the libxslt <a href="http://xmlsoft.org/XSLT/ChangeLog.html">Changelog</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>
|
XSLT-1.0forlibxml2. This module "libxslt" too can be found in the Gnome CVS
|
||||||
|
base.</p><p>You can check the progresses on the libxslt <a href="http://xmlsoft.org/XSLT/ChangeLog.html">Changelog</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>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
116
doc/bugs.html
116
doc/bugs.html
@@ -7,60 +7,62 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
A:link, A:visited, A:active { text-decoration: underline }
|
||||||
</style><title>Reporting bugs and getting 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>Reporting bugs and getting 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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>Well, bugs or missing features are always possible, and I will make apoint
|
</style><title>Reporting bugs and getting 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>Reporting bugs and getting 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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>Well, bugs or missing features are always possible, and I will make
|
||||||
of fixing them in a timely fashion. The best way to report a bug is touse the
|
apointof fixing them in a timely fashion. The best way to report a bug is
|
||||||
<a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Gnomebug
|
touse the<a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Gnomebugtracking
|
||||||
tracking database</a>(make sure to use the "libxml2" module name). Ilook at
|
database</a>(make sure to use the "libxml2" module name). Ilook atreports
|
||||||
reports there regularly and it's good to have a reminder when a bugis still
|
there regularly and it's good to have a reminder when a bugis stillopen. Be
|
||||||
open. Be sure to specify that the bug is for the package libxml2.</p><p>For small problems you can try to get help on IRC, the #xml channel
|
sure to specify that the bug is for the package libxml2.</p><p>For small problems you can try to get help on IRC, the #xml
|
||||||
onirc.gnome.org (port 6667) usually have a few person subscribed which may
|
channelonirc.gnome.org (port 6667) usually have a few person subscribed which
|
||||||
help(but there is no garantee and if a real issue is raised it should go on
|
mayhelp(but there is no garantee and if a real issue is raised it should go
|
||||||
themailing-list for archival).</p><p>There is also a mailing-list <a href="mailto:xml@gnome.org">xml@gnome.org</a>for libxml, with an <a href="http://mail.gnome.org/archives/xml/">on-line archive</a>(<a href="http://xmlsoft.org/messages">old</a>). To subscribe to this list,please
|
onthemailing-list for archival).</p><p>There is also a mailing-list <a href="mailto:xml@gnome.org">xml@gnome.org</a>for libxml, with an <a href="http://mail.gnome.org/archives/xml/">on-line archive</a>(<a href="http://xmlsoft.org/messages">old</a>). To subscribe to this
|
||||||
visit the <a href="http://mail.gnome.org/mailman/listinfo/xml">associated
|
list,pleasevisit the <a href="http://mail.gnome.org/mailman/listinfo/xml">associatedWeb</a>page
|
||||||
Web</a>page andfollow the instructions. <strong>Do not send code, I won't
|
andfollow the instructions. <strong>Do not send code, I won'tdebug
|
||||||
debug it</strong>(but patches are really appreciated!).</p><p>Please note that with the current amount of virus and SPAM, sending mailto
|
it</strong>(but patches are really appreciated!).</p><p>Please note that with the current amount of virus and SPAM, sending
|
||||||
the list without being subscribed won't work. There is *far too manybounces*
|
mailtothe list without being subscribed won't work. There is *far too
|
||||||
(in the order of a thousand a day !) I cannot approve them manuallyanymore.
|
manybounces*(in the order of a thousand a day !) I cannot approve them
|
||||||
If your mail to the list bounced waiting for administrator approval,it is
|
manuallyanymore.If your mail to the list bounced waiting for administrator
|
||||||
LOST ! Repost it and fix the problem triggering the error. Also pleasenote
|
approval,it isLOST ! Repost it and fix the problem triggering the error. Also
|
||||||
that <span style="color: #FF0000; background-color: #FFFFFF">emails witha
|
pleasenotethat <span style="color: #FF0000; background-color: #FFFFFF">emails
|
||||||
legal warning asking to not copy or redistribute freely the informationsthey
|
withalegal warning asking to not copy or redistribute freely the
|
||||||
contain</span>are <strong>NOT</strong>acceptable for the mailing-list,such
|
informationstheycontain</span>are <strong>NOT</strong>acceptable for the
|
||||||
mail will as much as possible be discarded automatically, and are lesslikely
|
mailing-list,suchmail will as much as possible be discarded automatically,
|
||||||
to be answered if they made it to the list, <strong>DO NOT</strong>post to
|
and are lesslikelyto be answered if they made it to the list, <strong>DO
|
||||||
the list from an email address where such legal requirements areautomatically
|
NOT</strong>post tothe list from an email address where such legal
|
||||||
added, get private paying support if you can't shareinformations.</p><p>Check the following <strong><span style="color: #FF0000">beforeposting</span></strong>:</p><ul><li>Read the <a href="FAQ.html">FAQ</a>and <a href="search.php">use
|
requirements areautomaticallyadded, get private paying support if you can't
|
||||||
thesearch engine</a>to get information related to your problem.</li>
|
shareinformations.</p><p>Check the following <strong><span style="color: #FF0000">beforeposting</span></strong>:</p><ul><li>Read the <a href="FAQ.html">FAQ</a>and <a href="search.php">usethesearch engine</a>to get information related to
|
||||||
<li>Make sure you are <a href="ftp://xmlsoft.org/libxml2/">using a
|
your problem.</li>
|
||||||
recentversion</a>, and that the problem still shows up in a recent
|
<li>Make sure you are <a href="ftp://xmlsoft.org/libxml2/">using
|
||||||
version.</li>
|
arecentversion</a>, and that the problem still shows up in a
|
||||||
<li>Check the <a href="http://mail.gnome.org/archives/xml/">listarchives</a>to see if the
|
recentversion.</li>
|
||||||
problem was reported already. In this casethere is probably a fix
|
<li>Check the <a href="http://mail.gnome.org/archives/xml/">listarchives</a>to see if
|
||||||
available, similarly check the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">registeredopen
|
theproblem was reported already. In this casethere is probably a
|
||||||
bugs</a>.</li>
|
fixavailable, similarly check the <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">registeredopenbugs</a>.</li>
|
||||||
<li>Make sure you can reproduce the bug with xmllint or one of the
|
<li>Make sure you can reproduce the bug with xmllint or one of
|
||||||
testprograms found in source in the distribution.</li>
|
thetestprograms found in source in the distribution.</li>
|
||||||
<li>Please send the command showing the error as well as the input (as
|
<li>Please send the command showing the error as well as the input
|
||||||
anattachment)</li>
|
(asanattachment)</li>
|
||||||
</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
|
</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
|
||||||
libxmlrelated I will approve it. Please do not send mail to me directly, it
|
reallylibxmlrelated I will approve it. Please do not send mail to me
|
||||||
makesthings really hard to track and in some cases I am not the best person
|
directly, itmakesthings really hard to track and in some cases I am not the
|
||||||
toanswer 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
|
best persontoanswer 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 senttothe
|
||||||
tothe list or on bugzilla</span>in case of problems, so that the
|
list or on bugzilla</span>in case of problems, so that theQuestionand
|
||||||
Questionand Answers can be shared publicly. Failing to do so carries the
|
Answers can be shared publicly. Failing to do so carries
|
||||||
implicitmessage "I want free support but I don't want to share the
|
theimplicitmessage "I want free support but I don't want to share
|
||||||
benefits withothers" and is not welcome. I will automatically Carbon-Copy
|
thebenefits withothers" and is not welcome. I will automatically
|
||||||
thexml@gnome.org mailing list for any technical reply made about libxml2
|
Carbon-Copythexml@gnome.org mailing list for any technical reply made
|
||||||
orlibxslt.</li>
|
about libxml2orlibxslt.</li>
|
||||||
<li>There is <span style="color: #E50000">no garantee of support</span>,
|
<li>There is <span style="color: #E50000">no garantee of
|
||||||
ifyour question remains unanswered after a week, repost it, making sure
|
support</span>,ifyour question remains unanswered after a week, repost
|
||||||
yougave all the detail needed and the information requested.</li>
|
it, making sureyougave all the detail needed and the information
|
||||||
<li>Failing to provide information as requested or double checking firstfor
|
requested.</li>
|
||||||
prior feedback also carries the implicit message "the time of thelibrary
|
<li>Failing to provide information as requested or double checking
|
||||||
maintainers is less valuable than my time" and might not bewelcome.</li>
|
firstforprior feedback also carries the implicit message "the time of
|
||||||
</ul><p>Of course, bugs reported with a suggested patch for fixing them
|
thelibrarymaintainers is less valuable than my time" and might not
|
||||||
willprobably be processed faster than those without.</p><p>If you're looking for help, a quick look at <a href="http://mail.gnome.org/archives/xml/">the list archive</a>may
|
bewelcome.</li>
|
||||||
actuallyprovide the answer. I usually send source samples when answering
|
</ul><p>Of course, bugs reported with a suggested patch for fixing
|
||||||
libxml2usage questions. The <a href="http://xmlsoft.org/html/book1.html">auto-generated
|
themwillprobably be processed faster than those without.</p><p>If you're looking for help, a quick look at <a href="http://mail.gnome.org/archives/xml/">the list
|
||||||
documentation</a>isnot as polished as I would like (i need to learn more
|
archive</a>mayactuallyprovide the answer. I usually send source samples when
|
||||||
about DocBook), butit's a good starting point.</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>
|
answeringlibxml2usage questions. The <a href="http://xmlsoft.org/html/book1.html">auto-generateddocumentation</a>isnot
|
||||||
|
as polished as I would like (i need to learn moreabout DocBook), butit's a
|
||||||
|
good starting point.</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>
|
||||||
|
|||||||
321
doc/catalog.html
321
doc/catalog.html
@@ -14,77 +14,78 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<li><a href="#reference">How to tune catalog usage</a></li>
|
<li><a href="#reference">How to tune catalog usage</a></li>
|
||||||
<li><a href="#validate">How to debug catalog processing</a></li>
|
<li><a href="#validate">How to debug catalog processing</a></li>
|
||||||
<li><a href="#Declaring">How to create and maintain catalogs</a></li>
|
<li><a href="#Declaring">How to create and maintain catalogs</a></li>
|
||||||
<li><a href="#implemento">The implementor corner quick review of
|
<li><a href="#implemento">The implementor corner quick review
|
||||||
theAPI</a></li>
|
oftheAPI</a></li>
|
||||||
<li><a href="#Other">Other resources</a></li>
|
<li><a href="#Other">Other resources</a></li>
|
||||||
</ol><h3><a name="General2" id="General2">General overview</a></h3><p>What is a catalog? Basically it's a lookup mechanism used when an entity(a
|
</ol><h3><a name="General2" id="General2">General overview</a></h3><p>What is a catalog? Basically it's a lookup mechanism used when an
|
||||||
file or a remote resource) references another entity. The catalog lookupis
|
entity(afile or a remote resource) references another entity. The catalog
|
||||||
inserted between the moment the reference is recognized by the software(XML
|
lookupisinserted between the moment the reference is recognized by the
|
||||||
parser, stylesheet processing, or even images referenced for inclusionin a
|
software(XMLparser, stylesheet processing, or even images referenced for
|
||||||
rendering) and the time where loading that resource is actuallystarted.</p><p>It is basically used for 3 things:</p><ul><li>mapping from "logical" names, the public identifiers and a moreconcrete
|
inclusionin arendering) and the time where loading that resource is
|
||||||
name usable for download (and URI). For example it can associatethe
|
actuallystarted.</p><p>It is basically used for 3 things:</p><ul><li>mapping from "logical" names, the public identifiers and a
|
||||||
logical name
|
moreconcretename usable for download (and URI). For example it can
|
||||||
|
associatethelogical name
|
||||||
<p>"-//OASIS//DTD DocBook XML V4.1.2//EN"</p>
|
<p>"-//OASIS//DTD DocBook XML V4.1.2//EN"</p>
|
||||||
<p>of the DocBook 4.1.2 XML DTD with the actual URL where it can
|
<p>of the DocBook 4.1.2 XML DTD with the actual URL where it
|
||||||
bedownloaded</p>
|
canbedownloaded</p>
|
||||||
<p>http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd</p>
|
<p>http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd</p>
|
||||||
</li>
|
</li>
|
||||||
<li>remapping from a given URL to another one, like an HTTP
|
<li>remapping from a given URL to another one, like an
|
||||||
indirectionsaying that
|
HTTPindirectionsaying that
|
||||||
<p>"http://www.oasis-open.org/committes/tr.xsl"</p>
|
<p>"http://www.oasis-open.org/committes/tr.xsl"</p>
|
||||||
<p>should really be looked at</p>
|
<p>should really be looked at</p>
|
||||||
<p>"http://www.oasis-open.org/committes/entity/stylesheets/base/tr.xsl"</p>
|
<p>"http://www.oasis-open.org/committes/entity/stylesheets/base/tr.xsl"</p>
|
||||||
</li>
|
</li>
|
||||||
<li>providing a local cache mechanism allowing to load the
|
<li>providing a local cache mechanism allowing to load
|
||||||
entitiesassociated to public identifiers or remote resources, this is a
|
theentitiesassociated to public identifiers or remote resources, this is
|
||||||
reallyimportant feature for any significant deployment of XML or SGML
|
areallyimportant feature for any significant deployment of XML or
|
||||||
since itallows to avoid the aleas and delays associated to fetching
|
SGMLsince itallows to avoid the aleas and delays associated to
|
||||||
remoteresources.</li>
|
fetchingremoteresources.</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
|
</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
|
||||||
TechnicalResolution TR9401:1997, but is better understood by reading <a href="http://www.jclark.com/sp/catalog.htm">the SP Catalog
|
OpenTechnicalResolution TR9401:1997, but is better understood by reading
|
||||||
page</a>fromJames Clark. This is relatively old and not the preferred
|
<a href="http://www.jclark.com/sp/catalog.htm">the SP
|
||||||
mode ofoperation of libxml.</li>
|
Catalogpage</a>fromJames Clark. This is relatively old and not the
|
||||||
<li><a href="http://www.oasis-open.org/committees/entity/spec.html">XMLCatalogs</a>is
|
preferredmode ofoperation of libxml.</li>
|
||||||
far more flexible, more recent, uses an XML syntax andshould scale quite
|
<li><a href="http://www.oasis-open.org/committees/entity/spec.html">XMLCatalogs</a>isfar
|
||||||
better. This is the default option of libxml.</li>
|
more flexible, more recent, uses an XML syntax andshould scale
|
||||||
</ul><p></p><h3><a name="Simple" id="Simple">Using catalog</a></h3><p>In a normal environment libxml2 will by default check the presence of
|
quitebetter. This is the default option of libxml.</li>
|
||||||
acatalog in /etc/xml/catalog, and assuming it has been correctly
|
</ul><p></p><h3><a name="Simple" id="Simple">Using catalog</a></h3><p>In a normal environment libxml2 will by default check the presence
|
||||||
populated,the processing is completely transparent to the document user. To
|
ofacatalog in /etc/xml/catalog, and assuming it has been
|
||||||
take aconcrete example, suppose you are authoring a DocBook document, this
|
correctlypopulated,the processing is completely transparent to the document
|
||||||
onestarts with the following DOCTYPE definition:</p><pre><?xml version='1.0'?>
|
user. Totake aconcrete example, suppose you are authoring a DocBook document,
|
||||||
|
thisonestarts with the following DOCTYPE definition:</p><pre><?xml version='1.0'?>
|
||||||
<!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.4//EN"
|
<!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.4//EN"
|
||||||
"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd"></pre><p>When validating the document with libxml, the catalog will beautomatically
|
"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd"></pre><p>When validating the document with libxml, the catalog will
|
||||||
consulted to lookup the public identifier "-//Norman Walsh//DTDDocBk XML
|
beautomaticallyconsulted to lookup the public identifier "-//Norman
|
||||||
V3.1.4//EN" and the system
|
Walsh//DTDDocBk XMLV3.1.4//EN" and the
|
||||||
identifier"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd", and if these
|
systemidentifier"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd", and if
|
||||||
entities havebeen installed on your system and the catalogs actually point to
|
theseentities havebeen installed on your system and the catalogs actually
|
||||||
them, libxmlwill fetch them from the local disk.</p><p style="font-size: 10pt"><strong>Note</strong>: Really don't use
|
point tothem, libxmlwill fetch them from the local disk.</p><p style="font-size: 10pt"><strong>Note</strong>: Really don't usethisDOCTYPE
|
||||||
thisDOCTYPE example it's a really old version, but is fine as an example.</p><p>Libxml2 will check the catalog each time that it is requested to load
|
example it's a really old version, but is fine as an example.</p><p>Libxml2 will check the catalog each time that it is requested to
|
||||||
anentity, this includes DTD, external parsed entities, stylesheets, etc ...
|
loadanentity, this includes DTD, external parsed entities, stylesheets, etc
|
||||||
Ifyour system is correctly configured all the authoring phase and
|
...Ifyour system is correctly configured all the authoring phase
|
||||||
processingshould use only local files, even if your document stays portable
|
andprocessingshould use only local files, even if your document stays
|
||||||
because ituses the canonical public and system ID, referencing the remote
|
portablebecause ituses the canonical public and system ID, referencing the
|
||||||
document.</p><h3><a name="Some" id="Some">Some examples:</a></h3><p>Here is a couple of fragments from XML Catalogs used in libxml2
|
remotedocument.</p><h3><a name="Some" id="Some">Some examples:</a></h3><p>Here is a couple of fragments from XML Catalogs used in
|
||||||
earlyregression tests in <code>test/catalogs</code>:</p><pre><?xml version="1.0"?>
|
libxml2earlyregression tests in <code>test/catalogs</code>:</p><pre><?xml version="1.0"?>
|
||||||
<!DOCTYPE catalog PUBLIC
|
<!DOCTYPE catalog PUBLIC
|
||||||
"-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
"-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
||||||
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
||||||
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
|
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
|
||||||
<public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
|
<public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
|
uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
|
||||||
...</pre><p>This is the beginning of a catalog for DocBook 4.1.2, XML Catalogs
|
...</pre><p>This is the beginning of a catalog for DocBook 4.1.2, XML
|
||||||
arewritten in XML, there is a specific namespace for catalog
|
Catalogsarewritten in XML, there is a specific namespace for
|
||||||
elements"urn:oasis:names:tc:entity:xmlns:xml:catalog". The first entry in
|
catalogelements"urn:oasis:names:tc:entity:xmlns:xml:catalog". The first entry
|
||||||
thiscatalog is a <code>public</code>mapping it allows to associate a
|
inthiscatalog is a <code>public</code>mapping it allows to associate
|
||||||
PublicIdentifier with an URI.</p><pre>...
|
aPublicIdentifier with an URI.</p><pre>...
|
||||||
<rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/"
|
<rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/"
|
||||||
rewritePrefix="file:///usr/share/xml/docbook/"/>
|
rewritePrefix="file:///usr/share/xml/docbook/"/>
|
||||||
...</pre><p>A <code>rewriteSystem</code>is a very powerful instruction, it says
|
...</pre><p>A <code>rewriteSystem</code>is a very powerful instruction, it saysthatany
|
||||||
thatany URI starting with a given prefix should be looked at another
|
URI starting with a given prefix should be looked at anotherURIconstructed by
|
||||||
URIconstructed by replacing the prefix with an new one. In effect this acts
|
replacing the prefix with an new one. In effect this actslikea cache system
|
||||||
likea cache system for a full area of the Web. In practice it is extremely
|
for a full area of the Web. In practice it is extremelyusefulwith a file
|
||||||
usefulwith a file prefix if you have installed a copy of those resources on
|
prefix if you have installed a copy of those resources onyourlocal system.</p><pre>...
|
||||||
yourlocal system.</p><pre>...
|
|
||||||
<delegatePublic publicIdStartString="-//OASIS//DTD XML Catalog //"
|
<delegatePublic publicIdStartString="-//OASIS//DTD XML Catalog //"
|
||||||
catalog="file:///usr/share/xml/docbook.xml"/>
|
catalog="file:///usr/share/xml/docbook.xml"/>
|
||||||
<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook XML"
|
<delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook XML"
|
||||||
@@ -95,21 +96,21 @@ yourlocal system.</p><pre>...
|
|||||||
catalog="file:///usr/share/xml/docbook.xml"/>
|
catalog="file:///usr/share/xml/docbook.xml"/>
|
||||||
<delegateURI uriStartString="http://www.oasis-open.org/docbook/"
|
<delegateURI uriStartString="http://www.oasis-open.org/docbook/"
|
||||||
catalog="file:///usr/share/xml/docbook.xml"/>
|
catalog="file:///usr/share/xml/docbook.xml"/>
|
||||||
...</pre><p>Delegation is the core features which allows to build a tree of
|
...</pre><p>Delegation is the core features which allows to build a tree
|
||||||
catalogs,easier to maintain than a single catalog, based on Public
|
ofcatalogs,easier to maintain than a single catalog, based on
|
||||||
Identifier, SystemIdentifier or URI prefixes it instructs the catalog
|
PublicIdentifier, SystemIdentifier or URI prefixes it instructs the
|
||||||
software to look upentries in another resource. This feature allow to build
|
catalogsoftware to look upentries in another resource. This feature allow to
|
||||||
hierarchies ofcatalogs, the set of entries presented should be sufficient to
|
buildhierarchies ofcatalogs, the set of entries presented should be
|
||||||
redirect theresolution of all DocBook references to the specific catalog
|
sufficient toredirect theresolution of all DocBook references to the specific
|
||||||
in<code>/usr/share/xml/docbook.xml</code>this one in turn could delegate
|
catalogin<code>/usr/share/xml/docbook.xml</code>this one in turn could
|
||||||
allreferences for DocBook 4.2.1 to a specific catalog installed at the same
|
delegateallreferences for DocBook 4.2.1 to a specific catalog installed at
|
||||||
timeas the DocBook resources on the local machine.</p><h3><a name="reference" id="reference">How to tune catalog usage:</a></h3><p>The user can change the default catalog behaviour by redirecting queriesto
|
the sametimeas the DocBook resources on the local machine.</p><h3><a name="reference" id="reference">How to tune catalog usage:</a></h3><p>The user can change the default catalog behaviour by redirecting
|
||||||
its own set of catalogs, this can be done by setting
|
queriestoits own set of catalogs, this can be done by
|
||||||
the<code>XML_CATALOG_FILES</code>environment variable to a list of catalogs,
|
settingthe<code>XML_CATALOG_FILES</code>environment variable to a list of
|
||||||
anempty one should deactivate loading the default
|
catalogs,anempty one should deactivate loading the
|
||||||
<code>/etc/xml/catalog</code>default catalog</p><h3><a name="validate" id="validate">How to debug catalog processing:</a></h3><p>Setting up the <code>XML_DEBUG_CATALOG</code>environment variable willmake
|
default<code>/etc/xml/catalog</code>default catalog</p><h3><a name="validate" id="validate">How to debug catalog processing:</a></h3><p>Setting up the <code>XML_DEBUG_CATALOG</code>environment variable
|
||||||
libxml2 output debugging informations for each catalog operations,
|
willmakelibxml2 output debugging informations for each catalog
|
||||||
forexample:</p><pre>orchis:~/XML -> xmllint --memory --noout test/ent2
|
operations,forexample:</p><pre>orchis:~/XML -> xmllint --memory --noout test/ent2
|
||||||
warning: failed to load external entity "title.xml"
|
warning: failed to load external entity "title.xml"
|
||||||
orchis:~/XML -> export XML_DEBUG_CATALOG=
|
orchis:~/XML -> export XML_DEBUG_CATALOG=
|
||||||
orchis:~/XML -> xmllint --memory --noout test/ent2
|
orchis:~/XML -> xmllint --memory --noout test/ent2
|
||||||
@@ -117,26 +118,26 @@ Failed to parse catalog /etc/xml/catalog
|
|||||||
Failed to parse catalog /etc/xml/catalog
|
Failed to parse catalog /etc/xml/catalog
|
||||||
warning: failed to load external entity "title.xml"
|
warning: failed to load external entity "title.xml"
|
||||||
Catalogs cleanup
|
Catalogs cleanup
|
||||||
orchis:~/XML -> </pre><p>The test/ent2 references an entity, running the parser from memory
|
orchis:~/XML -> </pre><p>The test/ent2 references an entity, running the parser from memorymakesthe
|
||||||
makesthe base URI unavailable and the the "title.xml" entity cannot be
|
base URI unavailable and the the "title.xml" entity cannot beloaded.Setting
|
||||||
loaded.Setting up the debug environment variable allows to detect that an
|
up the debug environment variable allows to detect that anattempt ismade to
|
||||||
attempt ismade to load the <code>/etc/xml/catalog</code>but since it's not
|
load the <code>/etc/xml/catalog</code>but since it's notpresent theresolution
|
||||||
present theresolution fails.</p><p>But the most advanced way to debug XML catalog processing is to use
|
fails.</p><p>But the most advanced way to debug XML catalog processing is to
|
||||||
the<strong>xmlcatalog</strong>command shipped with libxml2, it allows to
|
usethe<strong>xmlcatalog</strong>command shipped with libxml2, it allows
|
||||||
loadcatalogs and make resolution queries to see what is going on. This is
|
toloadcatalogs and make resolution queries to see what is going on. This
|
||||||
alsoused for the regression tests:</p><pre>orchis:~/XML -> ./xmlcatalog test/catalogs/docbook.xml \
|
isalsoused for the regression tests:</p><pre>orchis:~/XML -> ./xmlcatalog test/catalogs/docbook.xml \
|
||||||
"-//OASIS//DTD DocBook XML V4.1.2//EN"
|
"-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
|
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
|
||||||
orchis:~/XML -> </pre><p>For debugging what is going on, adding one -v flags increase the
|
orchis:~/XML -> </pre><p>For debugging what is going on, adding one -v flags increase
|
||||||
verbositylevel to indicate the processing done (adding a second flag also
|
theverbositylevel to indicate the processing done (adding a second flag
|
||||||
indicatewhat elements are recognized at parsing):</p><pre>orchis:~/XML -> ./xmlcatalog -v test/catalogs/docbook.xml \
|
alsoindicatewhat elements are recognized at parsing):</p><pre>orchis:~/XML -> ./xmlcatalog -v test/catalogs/docbook.xml \
|
||||||
"-//OASIS//DTD DocBook XML V4.1.2//EN"
|
"-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
Parsing catalog test/catalogs/docbook.xml's content
|
Parsing catalog test/catalogs/docbook.xml's content
|
||||||
Found public match -//OASIS//DTD DocBook XML V4.1.2//EN
|
Found public match -//OASIS//DTD DocBook XML V4.1.2//EN
|
||||||
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
|
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
|
||||||
Catalogs cleanup
|
Catalogs cleanup
|
||||||
orchis:~/XML -> </pre><p>A shell interface is also available to debug and process multiple
|
orchis:~/XML -> </pre><p>A shell interface is also available to debug and process
|
||||||
queries(and for regression tests):</p><pre>orchis:~/XML -> ./xmlcatalog -shell test/catalogs/docbook.xml \
|
multiplequeries(and for regression tests):</p><pre>orchis:~/XML -> ./xmlcatalog -shell test/catalogs/docbook.xml \
|
||||||
"-//OASIS//DTD DocBook XML V4.1.2//EN"
|
"-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
> help
|
> help
|
||||||
Commands available:
|
Commands available:
|
||||||
@@ -152,18 +153,18 @@ exit: quit the shell
|
|||||||
> public "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
> public "-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
|
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
|
||||||
> quit
|
> quit
|
||||||
orchis:~/XML -> </pre><p>This should be sufficient for most debugging purpose, this was
|
orchis:~/XML -> </pre><p>This should be sufficient for most debugging purpose, this wasactuallyused
|
||||||
actuallyused heavily to debug the XML Catalog implementation itself.</p><h3><a name="Declaring" id="Declaring">How to create and maintain</a>catalogs:</h3><p>Basically XML Catalogs are XML files, you can either use XML tools
|
heavily to debug the XML Catalog implementation itself.</p><h3><a name="Declaring" id="Declaring">How to create and maintain</a>catalogs:</h3><p>Basically XML Catalogs are XML files, you can either use XML toolstomanage
|
||||||
tomanage them or use <strong>xmlcatalog</strong>for this. The basic step
|
them or use <strong>xmlcatalog</strong>for this. The basic stepisto create a
|
||||||
isto create a catalog the -create option provide this facility:</p><pre>orchis:~/XML -> ./xmlcatalog --create tst.xml
|
catalog the -create option provide this facility:</p><pre>orchis:~/XML -> ./xmlcatalog --create tst.xml
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
||||||
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
||||||
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/>
|
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/>
|
||||||
orchis:~/XML -> </pre><p>By default xmlcatalog does not overwrite the original catalog and save
|
orchis:~/XML -> </pre><p>By default xmlcatalog does not overwrite the original catalog and
|
||||||
theresult on the standard output, this can be overridden using the
|
savetheresult on the standard output, this can be overridden using
|
||||||
-nooutoption. The <code>-add</code>command allows to add entries in
|
the-nooutoption. The <code>-add</code>command allows to add entries
|
||||||
thecatalog:</p><pre>orchis:~/XML -> ./xmlcatalog --noout --create --add "public" \
|
inthecatalog:</p><pre>orchis:~/XML -> ./xmlcatalog --noout --create --add "public" \
|
||||||
"-//OASIS//DTD DocBook XML V4.1.2//EN" \
|
"-//OASIS//DTD DocBook XML V4.1.2//EN" \
|
||||||
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd tst.xml
|
http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd tst.xml
|
||||||
orchis:~/XML -> cat tst.xml
|
orchis:~/XML -> cat tst.xml
|
||||||
@@ -174,82 +175,80 @@ orchis:~/XML -> cat tst.xml
|
|||||||
<public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
|
<public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
|
||||||
uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
|
uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
|
||||||
</catalog>
|
</catalog>
|
||||||
orchis:~/XML -> </pre><p>The <code>-add</code>option will always take 3 parameters even if some
|
orchis:~/XML -> </pre><p>The <code>-add</code>option will always take 3 parameters even if
|
||||||
ofthe XML Catalog constructs (like nextCatalog) will have only a
|
someofthe XML Catalog constructs (like nextCatalog) will have only
|
||||||
singleargument, just pass a third empty string, it will be ignored.</p><p>Similarly the <code>-del</code>option remove matching entries from
|
asingleargument, just pass a third empty string, it will be ignored.</p><p>Similarly the <code>-del</code>option remove matching entries
|
||||||
thecatalog:</p><pre>orchis:~/XML -> ./xmlcatalog --del \
|
fromthecatalog:</p><pre>orchis:~/XML -> ./xmlcatalog --del \
|
||||||
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" tst.xml
|
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" tst.xml
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
|
||||||
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
|
||||||
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/>
|
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/>
|
||||||
orchis:~/XML -> </pre><p>The catalog is now empty. Note that the matching of
|
orchis:~/XML -> </pre><p>The catalog is now empty. Note that the matching
|
||||||
<code>-del</code>isexact and would have worked in a similar fashion with the
|
of<code>-del</code>isexact and would have worked in a similar fashion with
|
||||||
Public IDstring.</p><p>This is rudimentary but should be sufficient to manage a not too
|
thePublic IDstring.</p><p>This is rudimentary but should be sufficient to manage a not
|
||||||
complexcatalog tree of resources.</p><h3><a name="implemento" id="implemento">The implementor corner quick review of
|
toocomplexcatalog tree of resources.</p><h3><a name="implemento" id="implemento">The implementor corner quick review
|
||||||
theAPI:</a></h3><p>First, and like for every other module of libxml, there is anautomatically
|
oftheAPI:</a></h3><p>First, and like for every other module of libxml, there is
|
||||||
generated <a href="html/libxml-catalog.html">API page forcatalog
|
anautomaticallygenerated <a href="html/libxml-catalog.html">API page
|
||||||
support</a>.</p><p>The header for the catalog interfaces should be included as:</p><pre>#include <libxml/catalog.h></pre><p>The API is voluntarily kept very simple. First it is not obvious
|
forcatalogsupport</a>.</p><p>The header for the catalog interfaces should be included as:</p><pre>#include <libxml/catalog.h></pre><p>The API is voluntarily kept very simple. First it is not
|
||||||
thatapplications really need access to it since it is the default behaviour
|
obviousthatapplications really need access to it since it is the default
|
||||||
oflibxml2 (Note: it is possible to completely override libxml2 default
|
behaviouroflibxml2 (Note: it is possible to completely override libxml2
|
||||||
catalogby using <a href="html/libxml-parser.html">xmlSetExternalEntityLoader</a>toplug an
|
defaultcatalogby using <a href="html/libxml-parser.html">xmlSetExternalEntityLoader</a>toplug
|
||||||
application specific resolver).</p><p>Basically libxml2 support 2 catalog lists:</p><ul><li>the default one, global shared by all the application</li>
|
anapplication 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
|
<li>a per-document catalog, this one is built if the document
|
||||||
the<code>oasis-xml-catalog</code>PIs to specify its own catalog list, it
|
usesthe<code>oasis-xml-catalog</code>PIs to specify its own catalog list,
|
||||||
isassociated to the parser context and destroyed when the parsing
|
itisassociated to the parser context and destroyed when the
|
||||||
contextis destroyed.</li>
|
parsingcontextis destroyed.</li>
|
||||||
</ul><p>the document one will be used first if it exists.</p><h4>Initialization routines:</h4><p>xmlInitializeCatalog(), xmlLoadCatalog() and xmlLoadCatalogs() should
|
</ul><p>the document one will be used first if it exists.</p><h4>Initialization routines:</h4><p>xmlInitializeCatalog(), xmlLoadCatalog() and xmlLoadCatalogs()
|
||||||
beused at startup to initialize the catalog, if the catalog should
|
shouldbeused at startup to initialize the catalog, if the catalog
|
||||||
beinitialized with specific values xmlLoadCatalog() or
|
shouldbeinitialized with specific values xmlLoadCatalog()
|
||||||
xmlLoadCatalogs()should be called before xmlInitializeCatalog() which would
|
orxmlLoadCatalogs()should be called before xmlInitializeCatalog() which
|
||||||
otherwise do adefault initialization first.</p><p>The xmlCatalogAddLocal() call is used by the parser to grow the
|
wouldotherwise do adefault initialization first.</p><p>The xmlCatalogAddLocal() call is used by the parser to grow thedocumentown
|
||||||
documentown catalog list if needed.</p><h4>Preferences setup:</h4><p>The XML Catalog spec requires the possibility to select defaultpreferences
|
catalog list if needed.</p><h4>Preferences setup:</h4><p>The XML Catalog spec requires the possibility to select
|
||||||
between public and system delegation,xmlCatalogSetDefaultPrefer() allows
|
defaultpreferencesbetween public and system
|
||||||
this, xmlCatalogSetDefaults() andxmlCatalogGetDefaults() allow to control if
|
delegation,xmlCatalogSetDefaultPrefer() allowsthis, xmlCatalogSetDefaults()
|
||||||
XML Catalogs resolution shouldbe forbidden, allowed for global catalog, for
|
andxmlCatalogGetDefaults() allow to control ifXML Catalogs resolution
|
||||||
document catalog or both, thedefault is to allow both.</p><p>And of course xmlCatalogSetDebug() allows to generate debug
|
shouldbe forbidden, allowed for global catalog, fordocument catalog or both,
|
||||||
messages(through the xmlGenericError() mechanism).</p><h4>Querying routines:</h4><p>xmlCatalogResolve(), xmlCatalogResolveSystem(),
|
thedefault is to allow both.</p><p>And of course xmlCatalogSetDebug() allows to generate
|
||||||
xmlCatalogResolvePublic()and xmlCatalogResolveURI() are relatively explicit
|
debugmessages(through the xmlGenericError() mechanism).</p><h4>Querying routines:</h4><p>xmlCatalogResolve(),
|
||||||
if you read the XMLCatalog specification they correspond to section 7
|
xmlCatalogResolveSystem(),xmlCatalogResolvePublic()and xmlCatalogResolveURI()
|
||||||
algorithms, they shouldalso work if you have loaded an SGML catalog with a
|
are relatively explicitif you read the XMLCatalog specification they
|
||||||
simplified semantic.</p><p>xmlCatalogLocalResolve() and xmlCatalogLocalResolveURI() are the same
|
correspond to section 7algorithms, they shouldalso work if you have loaded an
|
||||||
butoperate on the document catalog list</p><h4>Cleanup and Miscellaneous:</h4><p>xmlCatalogCleanup() free-up the global catalog, xmlCatalogFreeLocal()
|
SGML catalog with asimplified semantic.</p><p>xmlCatalogLocalResolve() and xmlCatalogLocalResolveURI() are the
|
||||||
isthe per-document equivalent.</p><p>xmlCatalogAdd() and xmlCatalogRemove() are used to dynamically modify
|
samebutoperate on the document catalog list</p><h4>Cleanup and Miscellaneous:</h4><p>xmlCatalogCleanup() free-up the global catalog, xmlCatalogFreeLocal()isthe
|
||||||
thefirst catalog in the global list, and xmlCatalogDump() allows to dump
|
per-document equivalent.</p><p>xmlCatalogAdd() and xmlCatalogRemove() are used to dynamically
|
||||||
acatalog state, those routines are primarily designed for xmlcatalog, I'm
|
modifythefirst catalog in the global list, and xmlCatalogDump() allows to
|
||||||
notsure that exposing more complex interfaces (like navigation ones) would
|
dumpacatalog state, those routines are primarily designed for xmlcatalog,
|
||||||
bereally useful.</p><p>The xmlParseCatalogFile() is a function used to load XML Catalog
|
I'mnotsure that exposing more complex interfaces (like navigation ones)
|
||||||
files,it's similar as xmlParseFile() except it bypass all catalog lookups,
|
wouldbereally useful.</p><p>The xmlParseCatalogFile() is a function used to load XML Catalogfiles,it's
|
||||||
it'sprovided because this functionality may be useful for client tools.</p><h4>threaded environments:</h4><p>Since the catalog tree is built progressively, some care has been taken
|
similar as xmlParseFile() except it bypass all catalog lookups,it'sprovided
|
||||||
totry to avoid troubles in multithreaded environments. The code is now
|
because this functionality may be useful for client tools.</p><h4>threaded environments:</h4><p>Since the catalog tree is built progressively, some care has been
|
||||||
threadsafe assuming that the libxml2 library has been compiled with
|
takentotry to avoid troubles in multithreaded environments. The code is
|
||||||
threadssupport.</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
|
nowthreadsafe assuming that the libxml2 library has been compiled
|
||||||
muchliterature 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">theneed
|
withthreadssupport.</p><p></p><h3><a name="Other" id="Other">Other resources</a></h3><p>The XML Catalog specification is relatively recent so there
|
||||||
for catalogs</a>, it provides a lot of context informations even ifI
|
isn'tmuchliterature 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">theneedfor
|
||||||
don't agree with everything presented. Norm also wrote a more
|
catalogs</a>, it provides a lot of context informations even ifIdon't
|
||||||
recentarticle <a href="http://wwws.sun.com/software/xml/developers/resolver/article/">XMLentities
|
agree with everything presented. Norm also wrote a morerecentarticle <a href="http://wwws.sun.com/software/xml/developers/resolver/article/">XMLentitiesand
|
||||||
and URI resolvers</a>describing them.</li>
|
URI resolvers</a>describing them.</li>
|
||||||
<li>An <a href="http://home.ccil.org/~cowan/XML/XCatalog.html">old
|
<li>An <a href="http://home.ccil.org/~cowan/XML/XCatalog.html">oldXMLcatalog
|
||||||
XMLcatalog proposal</a>from John Cowan</li>
|
proposal</a>from John Cowan</li>
|
||||||
<li>The <a href="http://www.rddl.org/">Resource Directory
|
<li>The <a href="http://www.rddl.org/">Resource
|
||||||
DescriptionLanguage</a>(RDDL) another catalog system but more oriented
|
DirectoryDescriptionLanguage</a>(RDDL) another catalog system but more
|
||||||
towardproviding metadata for XML namespaces.</li>
|
orientedtowardproviding metadata for XML namespaces.</li>
|
||||||
<li>the page from the OASIS Technical <a href="http://www.oasis-open.org/committees/entity/">Committee on
|
<li>the page from the OASIS Technical <a href="http://www.oasis-open.org/committees/entity/">Committee
|
||||||
EntityResolution</a>who maintains XML Catalog, you will find pointers to
|
onEntityResolution</a>who maintains XML Catalog, you will find pointers
|
||||||
thespecification update, some background and pointers to others
|
tothespecification update, some background and pointers to
|
||||||
toolsproviding XML Catalog support</li>
|
otherstoolsproviding XML Catalog support</li>
|
||||||
<li>There is a <a href="buildDocBookCatalog">shell script</a>to generateXML
|
<li>There is a <a href="buildDocBookCatalog">shell script</a>to
|
||||||
Catalogs for DocBook 4.1.2 . If it can write to the /etc/xml/directory,
|
generateXMLCatalogs for DocBook 4.1.2 . If it can write to the
|
||||||
it will set-up /etc/xml/catalog and /etc/xml/docbook based onthe
|
/etc/xml/directory,it will set-up /etc/xml/catalog and /etc/xml/docbook
|
||||||
resources found on the system. Otherwise it will just create~/xmlcatalog
|
based ontheresources found on the system. Otherwise it will just
|
||||||
and ~/dbkxmlcatalog and doing:
|
create~/xmlcatalogand ~/dbkxmlcatalog and doing:
|
||||||
<p><code>export XML_CATALOG_FILES=$HOME/xmlcatalog</code></p>
|
<p><code>export XML_CATALOG_FILES=$HOME/xmlcatalog</code></p>
|
||||||
<p>should allow to process DocBook documentations without
|
<p>should allow to process DocBook documentations withoutrequiringnetwork
|
||||||
requiringnetwork accesses for the DTD or stylesheets</p>
|
accesses for the DTD or stylesheets</p>
|
||||||
</li>
|
</li>
|
||||||
<li>I have uploaded <a href="ftp://xmlsoft.org/libxml2/test/dbk412catalog.tar.gz">asmall
|
<li>I have uploaded <a href="ftp://xmlsoft.org/libxml2/test/dbk412catalog.tar.gz">asmalltarball</a>containing
|
||||||
tarball</a>containing XML Catalogs for DocBook 4.1.2 which seemsto work
|
XML Catalogs for DocBook 4.1.2 which seemsto workfine for me too</li>
|
||||||
fine for me too</li>
|
<li>The <a href="http://www.xmlsoft.org/xmlcatalog_man.html">xmlcatalogmanualpage</a></li>
|
||||||
<li>The <a href="http://www.xmlsoft.org/xmlcatalog_man.html">xmlcatalogmanual
|
|
||||||
page</a></li>
|
|
||||||
</ul><p>If you have suggestions for corrections or additions, simply contactme:</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>
|
</ul><p>If you have suggestions for corrections or additions, simply contactme:</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>
|
||||||
|
|||||||
@@ -7,33 +7,29 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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
|
</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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
|
||||||
ofpatches, Gary Pennington worked on the validation API, threading
|
numberofpatches, Gary Pennington worked on the validation API,
|
||||||
supportand Solaris port.</li>
|
threadingsupportand Solaris port.</li>
|
||||||
<li>John Fleck helps maintaining the documentation and man pages.</li>
|
<li>John Fleck helps maintaining the documentation and man pages.</li>
|
||||||
<li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a>is now
|
<li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a>is
|
||||||
themaintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he
|
nowthemaintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">heprovidesbinaries</a></li>
|
||||||
providesbinaries</a></li>
|
|
||||||
<li><a href="mailto:Gary.Pennington@sun.com">Gary Pennington</a>provides<a href="http://garypennington.net/libxml2/">Solaris binaries</a></li>
|
<li><a href="mailto:Gary.Pennington@sun.com">Gary Pennington</a>provides<a href="http://garypennington.net/libxml2/">Solaris binaries</a></li>
|
||||||
<li><a href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">MattSergeant</a>developed
|
<li><a href="http://mail.gnome.org/archives/xml/2001-March/msg00014.html">MattSergeant</a>developed<a href="http://axkit.org/download/">XML::LibXSLT</a>, a Perl
|
||||||
<a href="http://axkit.org/download/">XML::LibXSLT</a>, a Perl wrapper
|
wrapperforlibxml2/libxslt as part of the <a href="http://axkit.com/">AxKitXMLapplication server</a></li>
|
||||||
forlibxml2/libxslt as part of the <a href="http://axkit.com/">AxKit
|
<li><a href="mailto:fnatter@gmx.net">Felix Natter</a>and <a href="mailto:geertk@ai.rug.nl">Geert Kloosterman</a>provide <a href="libxml-doc.el">an emacs module</a>to lookup
|
||||||
XMLapplication server</a></li>
|
libxml(2)functionsdocumentation</li>
|
||||||
<li><a href="mailto:fnatter@gmx.net">Felix Natter</a>and <a href="mailto:geertk@ai.rug.nl">Geert Kloosterman</a>provide <a href="libxml-doc.el">an emacs module</a>to lookup libxml(2)
|
|
||||||
functionsdocumentation</li>
|
|
||||||
<li><a href="mailto:sherwin@nlm.nih.gov">Ziying Sherwin</a>provided <a href="http://xmlsoft.org/messages/0488.html">man pages</a></li>
|
<li><a href="mailto:sherwin@nlm.nih.gov">Ziying Sherwin</a>provided <a href="http://xmlsoft.org/messages/0488.html">man pages</a></li>
|
||||||
<li>there is a module for <a href="http://acs-misc.sourceforge.net/nsxml.html">libxml/libxslt
|
<li>there is a module for <a href="http://acs-misc.sourceforge.net/nsxml.html">libxml/libxsltsupportin
|
||||||
supportin OpenNSD/AOLServer</a></li>
|
OpenNSD/AOLServer</a></li>
|
||||||
<li><a href="mailto:dkuhlman@cutter.rexx.com">Dave Kuhlman</a>provided
|
<li><a href="mailto:dkuhlman@cutter.rexx.com">Dave
|
||||||
thefirst version of libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers for Python</a></li>
|
Kuhlman</a>providedthefirst version of libxml/libxslt <a href="http://www.rexx.com/~dkuhlman">wrappers for Python</a></li>
|
||||||
<li>Petr Kozelka provides <a href="http://sourceforge.net/projects/libxml2-pas">Pascal units to
|
<li>Petr Kozelka provides <a href="http://sourceforge.net/projects/libxml2-pas">Pascal units
|
||||||
gluelibxml2</a>with Kylix and Delphi and other Pascal compilers</li>
|
togluelibxml2</a>with Kylix and Delphi and other Pascal compilers</li>
|
||||||
<li><a href="mailto:aleksey@aleksey.com">Aleksey Sanin</a>implemented the<a href="http://www.w3.org/Signature/">XML Canonicalization and XMLDigital
|
<li><a href="mailto:aleksey@aleksey.com">Aleksey Sanin</a>implemented the<a href="http://www.w3.org/Signature/">XML Canonicalization and
|
||||||
Signature</a><a href="http://www.aleksey.com/xmlsec/">implementations for
|
XMLDigitalSignature</a><a href="http://www.aleksey.com/xmlsec/">implementations forlibxml2</a></li>
|
||||||
libxml2</a></li>
|
<li><a href="mailto:Steve.Ball@explain.com.au">SteveBall</a>andcontributors
|
||||||
<li><a href="mailto:Steve.Ball@explain.com.au">Steve
|
maintain <a href="http://tclxml.sourceforge.net/">tclbindings for libxml2
|
||||||
Ball</a>andcontributors maintain <a href="http://tclxml.sourceforge.net/">tclbindings for libxml2 and
|
andlibxslt</a>, as well as <a href="http://tclxml.sf.net/tkxmllint.html">tkxmllint</a>a GUI
|
||||||
libxslt</a>, as well as <a href="http://tclxml.sf.net/tkxmllint.html">tkxmllint</a>a GUI forxmllint
|
forxmllintand <a href="http://tclxml.sf.net/tkxsltproc.html">tkxsltproc</a>a GUIfor
|
||||||
and <a href="http://tclxml.sf.net/tkxsltproc.html">tkxsltproc</a>a GUI
|
xsltproc.</li>
|
||||||
for xsltproc.</li>
|
|
||||||
</ul><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>
|
</ul><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
@@ -7,30 +7,28 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
A:link, A:visited, A:active { text-decoration: underline }
|
||||||
</style><title>Downloads</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>Downloads</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>The latest versions of libxml2 can be found on the <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>server ( <a href="http://xmlsoft.org/sources/">HTTP</a>, <a href="ftp://xmlsoft.org/libxml2/">FTP</a>and rsync are available), there is
|
</style><title>Downloads</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>Downloads</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>The latest versions of libxml2 can be found on the <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>server ( <a href="http://xmlsoft.org/sources/">HTTP</a>, <a href="ftp://xmlsoft.org/libxml2/">FTP</a>and rsync are available), there
|
||||||
alsomirrors (<a href="ftp://ftp.planetmirror.com/pub/xmlsoft/">Australia</a>(
|
isalsomirrors (<a href="ftp://ftp.planetmirror.com/pub/xmlsoft/">Australia</a>(<a href="http://xmlsoft.planetmirror.com/">Web</a>), <a href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a>as <a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/">source
|
||||||
<a href="http://xmlsoft.planetmirror.com/">Web</a>), <a href="ftp://fr.rpmfind.net/pub/libxml/">France</a>) or on the <a href="ftp://ftp.gnome.org/pub/GNOME/MIRRORS.html">Gnome FTP server</a>as <a href="ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/">source archive</a>,
|
archive</a>,Antonin Sprinzl also provide <a href="ftp://gd.tuwien.ac.at/pub/libxml/">amirror in Austria</a>. (NOTE
|
||||||
Antonin Sprinzl also provide <a href="ftp://gd.tuwien.ac.at/pub/libxml/">amirror in Austria</a>. (NOTE that
|
thatyou 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>packagesinstalled
|
||||||
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
|
to compile applications using libxml.)</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.
|
||||||
installed to compile applications using libxml.)</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
|
TheprecompiledWindows 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>Red Hat RPMs for i386 are available directly on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>, the source RPM
|
||||||
precompiledWindows 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>Red Hat RPMs for i386 are available directly on <a href="ftp://xmlsoft.org/libxml2/">xmlsoft.org</a>, the source RPM will
|
willcompile onany architecture supported by Red Hat.</li>
|
||||||
compile onany architecture supported by Red Hat.</li>
|
<li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a>is
|
||||||
<li><a href="mailto:igor@zlatkovic.com">Igor Zlatkovic</a>is now
|
nowthemaintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">heprovidesbinaries</a>.</li>
|
||||||
themaintainer of the Windows port, <a href="http://www.zlatkovic.com/projects/libxml/index.html">he
|
|
||||||
providesbinaries</a>.</li>
|
|
||||||
<li>Blastwave provides <a href="http://www.blastwave.org/packages.php/libxml2">Solarisbinaries</a>.</li>
|
<li>Blastwave provides <a href="http://www.blastwave.org/packages.php/libxml2">Solarisbinaries</a>.</li>
|
||||||
<li><a href="mailto:Steve.Ball@explain.com.au">Steve Ball</a>provides <a href="http://www.explain.com.au/oss/libxml2xslt.html">Mac Os
|
<li><a href="mailto:Steve.Ball@explain.com.au">Steve Ball</a>provides <a href="http://www.explain.com.au/oss/libxml2xslt.html">Mac
|
||||||
Xbinaries</a>.</li>
|
OsXbinaries</a>.</li>
|
||||||
<li>The HP-UX porting center provides <a href="http://hpux.connect.org.uk/hppd/hpux/Gnome/">HP-UX binaries</a></li>
|
<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
|
<li>Bull provides precompiled <a href="http://gnome.bullfreeware.com/new_index.html">RPMs forAIX</a>aspatr
|
||||||
AIX</a>aspatr of their GNOME packages</li>
|
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 W3C cvs base libxml2 module, updated hourly <a href="ftp://xmlsoft.org/libxml2/libxml2-cvs-snapshot.tar.gz">libxml2-cvs-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 W3C cvs base libxml2 module, updated hourly <a href="ftp://xmlsoft.org/libxml2/libxml2-cvs-snapshot.tar.gz">libxml2-cvs-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>
|
<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
|
</ul><p><a name="Contribs" id="Contribs">Contributions:</a></p><p>I do accept external contributions, especially if compiling
|
||||||
anotherplatform, get in touch with the list to upload the package, wrappers
|
onanotherplatform, get in touch with the list to upload the package,
|
||||||
forvarious languages have been provided, and can be found in the <a href="python.html">bindings section</a></p><p>Libxml2 is also available from CVS:</p><ul><li><p>The <a href="http://cvs.gnome.org/viewcvs/libxml2/">Gnome
|
wrappersforvarious languages have been provided, and can be found in the <a href="python.html">bindings section</a></p><p>Libxml2 is also available from CVS:</p><ul><li><p>The <a href="http://cvs.gnome.org/viewcvs/libxml2/">GnomeCVSbase</a>. Check the
|
||||||
CVSbase</a>. Check the <a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS Tools</a>page;
|
<a href="http://developer.gnome.org/tools/cvs.html">Gnome CVS
|
||||||
the CVS module is <b>libxml2</b>.</p>
|
Tools</a>page;the CVS module is <b>libxml2</b>.</p>
|
||||||
</li>
|
</li>
|
||||||
<li>The <strong>libxslt</strong>module is also present there</li>
|
<li>The <strong>libxslt</strong>module is also present there</li>
|
||||||
</ul><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>
|
</ul><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>
|
||||||
|
|||||||
@@ -7,44 +7,44 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
A:link, A:visited, A:active { text-decoration: underline }
|
||||||
</style><title>Encodings 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>Encodings 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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>If you are not really familiar with Internationalization (usual shortcutis
|
</style><title>Encodings 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>Encodings 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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>If you are not really familiar with Internationalization (usual
|
||||||
I18N) , Unicode, characters and glyphs, I suggest you read a <a href="http://www.tbray.org/ongoing/When/200x/2003/04/06/Unicode">presentation</a>by
|
shortcutisI18N) , Unicode, characters and glyphs, I suggest you read a <a href="http://www.tbray.org/ongoing/When/200x/2003/04/06/Unicode">presentation</a>byTim
|
||||||
Tim Bray on Unicode and why you should care about it.</p><p>If you don't understand why <b>it does not make sense to have a
|
Bray on Unicode and why you should care about it.</p><p>If you don't understand why <b>it does not make sense to have
|
||||||
stringwithout knowing what encoding it uses</b>, then as Joel Spolsky said <a href="http://www.joelonsoftware.com/articles/Unicode.html">please do notwrite
|
astringwithout knowing what encoding it uses</b>, then as Joel Spolsky said
|
||||||
another line of code until you finish reading that article.</a>. It isa
|
<a href="http://www.joelonsoftware.com/articles/Unicode.html">please do
|
||||||
prerequisite to understand this page, and avoid a lot of problems
|
notwriteanother line of code until you finish reading that article.</a>. It
|
||||||
withlibxml2, XML or text processing in general.</p><p>Table of Content:</p><ol><li><a href="encoding.html#What">What does internationalization supportmean
|
isaprerequisite to understand this page, and avoid a lot of
|
||||||
?</a></li>
|
problemswithlibxml2, XML or text processing in general.</p><p>Table of Content:</p><ol><li><a href="encoding.html#What">What does internationalization
|
||||||
<li><a href="encoding.html#internal">The internal encoding, how
|
supportmean?</a></li>
|
||||||
andwhy</a></li>
|
<li><a href="encoding.html#internal">The internal encoding,
|
||||||
|
howandwhy</a></li>
|
||||||
<li><a href="encoding.html#implemente">How is it implemented ?</a></li>
|
<li><a href="encoding.html#implemente">How is it implemented ?</a></li>
|
||||||
<li><a href="encoding.html#Default">Default supported encodings</a></li>
|
<li><a href="encoding.html#Default">Default supported encodings</a></li>
|
||||||
<li><a href="encoding.html#extend">How to extend the
|
<li><a href="encoding.html#extend">How to extend theexistingsupport</a></li>
|
||||||
existingsupport</a></li>
|
</ol><h3><a name="What" id="What">What does internationalization support mean ?</a></h3><p>XML was designed from the start to allow the support of any charactersetby
|
||||||
</ol><h3><a name="What" id="What">What does internationalization support mean ?</a></h3><p>XML was designed from the start to allow the support of any character
|
using Unicode. Any conformant XML parser has to support the UTF-8andUTF-16
|
||||||
setby using Unicode. Any conformant XML parser has to support the UTF-8
|
default encodings which can both express the full unicode ranges.UTF8is a
|
||||||
andUTF-16 default encodings which can both express the full unicode ranges.
|
variable length encoding whose greatest points are to reuse thesameencoding
|
||||||
UTF8is a variable length encoding whose greatest points are to reuse the
|
for ASCII and to save space for Western encodings, but it is abitmore complex
|
||||||
sameencoding for ASCII and to save space for Western encodings, but it is a
|
to handle in practice. UTF-16 use 2 bytes per character(andsometimes combines
|
||||||
bitmore complex to handle in practice. UTF-16 use 2 bytes per character
|
two pairs), it makes implementation easier, but looksabit overkill for
|
||||||
(andsometimes combines two pairs), it makes implementation easier, but looks
|
Western languages encoding. Moreover the XMLspecificationallows the document
|
||||||
abit overkill for Western languages encoding. Moreover the XML
|
to be encoded in other encodings at thecondition thatthey are clearly labeled
|
||||||
specificationallows the document to be encoded in other encodings at the
|
as such. For example the following isa wellformedXML document encoded in
|
||||||
condition thatthey are clearly labeled as such. For example the following is
|
ISO-8859-1 and using accentuated lettersthat weFrench like for both markup
|
||||||
a wellformedXML document encoded in ISO-8859-1 and using accentuated letters
|
and content:</p><pre><?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
that weFrench like for both markup and content:</p><pre><?xml version="1.0" encoding="ISO-8859-1"?>
|
|
||||||
<tr<EFBFBD>s>l<EFBFBD></tr<74>s></pre><p>Having internationalization support in libxml2 means the following:</p><ul><li>the document is properly parsed</li>
|
<tr<EFBFBD>s>l<EFBFBD></tr<74>s></pre><p>Having internationalization support in libxml2 means the following:</p><ul><li>the document is properly parsed</li>
|
||||||
<li>informations about it's encoding are saved</li>
|
<li>informations about it's encoding are saved</li>
|
||||||
<li>it can be modified</li>
|
<li>it can be modified</li>
|
||||||
<li>it can be saved in its original encoding</li>
|
<li>it can be saved in its original encoding</li>
|
||||||
<li>it can also be saved in another encoding supported by libxml2
|
<li>it can also be saved in another encoding supported by
|
||||||
(forexample straight UTF8 or even an ASCII form)</li>
|
libxml2(forexample straight UTF8 or even an ASCII form)</li>
|
||||||
</ul><p>Another very important point is that the whole libxml2 API, with
|
</ul><p>Another very important point is that the whole libxml2 API,
|
||||||
theexception of a few routines to read with a specific encoding or save to
|
withtheexception of a few routines to read with a specific encoding or save
|
||||||
aspecific encoding, is completely agnostic about the original encoding of
|
toaspecific encoding, is completely agnostic about the original encoding
|
||||||
thedocument.</p><p>It should be noted too that the HTML parser embedded in libxml2 now
|
ofthedocument.</p><p>It should be noted too that the HTML parser embedded in libxml2 nowobeythe
|
||||||
obeythe same rules too, the following document will be (as of 2.2.2) handled
|
same rules too, the following document will be (as of 2.2.2) handledinan
|
||||||
inan internationalized fashion by libxml2 too:</p><pre><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
|
internationalized fashion by libxml2 too:</p><pre><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
|
||||||
"http://www.w3.org/TR/REC-html40/loose.dtd">
|
"http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
@@ -52,60 +52,60 @@ inan internationalized fashion by libxml2 too:</p><pre><!DOCTYPE HTML PUBLIC
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<p>W3C cr<63>e des standards pour le Web.</body>
|
<p>W3C cr<63>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
|
</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
|
||||||
adefault internal encoding, and that encoding to be UTF-8, here are
|
toadefault internal encoding, and that encoding to be UTF-8, here
|
||||||
therationales for those choices:</p><ul><li>keeping the native encoding in the internal form would force the
|
aretherationales for those choices:</p><ul><li>keeping the native encoding in the internal form would force
|
||||||
libxmlusers (or the code associated) to be fully aware of the encoding of
|
thelibxmlusers (or the code associated) to be fully aware of the encoding
|
||||||
theoriginal document, for examples when adding a text node to a
|
oftheoriginal document, for examples when adding a text node to
|
||||||
document,the content would have to be provided in the document encoding,
|
adocument,the content would have to be provided in the document
|
||||||
i.e. theclient code would have to check it before hand, make sure it's
|
encoding,i.e. theclient code would have to check it before hand, make
|
||||||
conformantto the encoding, etc ... Very hard in practice, though in some
|
sure it'sconformantto the encoding, etc ... Very hard in practice, though
|
||||||
specificcases this may make sense.</li>
|
in somespecificcases this may make sense.</li>
|
||||||
<li>the second decision was which encoding. From the XML spec only UTF8
|
<li>the second decision was which encoding. From the XML spec only
|
||||||
andUTF16 really makes sense as being the two only encodings for which
|
UTF8andUTF16 really makes sense as being the two only encodings for
|
||||||
thereis mandatory support. UCS-4 (32 bits fixed size encoding) could
|
whichthereis mandatory support. UCS-4 (32 bits fixed size encoding)
|
||||||
beconsidered an intelligent choice too since it's a direct Unicode
|
couldbeconsidered an intelligent choice too since it's a direct
|
||||||
mappingsupport. I selected UTF-8 on the basis of efficiency and
|
Unicodemappingsupport. I selected UTF-8 on the basis of efficiency
|
||||||
compatibilitywith surrounding software:
|
andcompatibilitywith surrounding software:
|
||||||
<ul><li>UTF-8 while a bit more complex to convert from/to (i.e.
|
<ul><li>UTF-8 while a bit more complex to convert from/to (i.e.slightlymore
|
||||||
slightlymore costly to import and export CPU wise) is also far more
|
costly to import and export CPU wise) is also far morecompactthan
|
||||||
compactthan UTF-16 (and UCS-4) for a majority of the documents I see
|
UTF-16 (and UCS-4) for a majority of the documents I seeit usedfor
|
||||||
it usedfor right now (RPM RDF catalogs, advogato data, various
|
right now (RPM RDF catalogs, advogato data, variousconfigurationfile
|
||||||
configurationfile formats, etc.) and the key point for today's
|
formats, etc.) and the key point for today'scomputerarchitecture is
|
||||||
computerarchitecture is efficient uses of caches. If one nearly
|
efficient uses of caches. If one nearlydouble thememory requirement
|
||||||
double thememory requirement to store the same amount of data, this
|
to store the same amount of data, thiswill trashcaches (main
|
||||||
will trashcaches (main memory/external caches/internal caches) and my
|
memory/external caches/internal caches) and mytake isthat this harms
|
||||||
take isthat this harms the system far more than the CPU requirements
|
the system far more than the CPU requirementsneededfor the conversion
|
||||||
neededfor the conversion to UTF-8</li>
|
to UTF-8</li>
|
||||||
<li>Most of libxml2 version 1 users were using it with straight
|
<li>Most of libxml2 version 1 users were using it with
|
||||||
ASCIImost of the time, doing the conversion with an internal
|
straightASCIImost of the time, doing the conversion with an
|
||||||
encodingrequiring all their code to be rewritten was a serious
|
internalencodingrequiring all their code to be rewritten was a
|
||||||
show-stopperfor using UTF-16 or UCS-4.</li>
|
seriousshow-stopperfor using UTF-16 or UCS-4.</li>
|
||||||
<li>UTF-8 is being used as the de-facto internal encoding standard
|
<li>UTF-8 is being used as the de-facto internal encoding
|
||||||
forrelated code like the <a href="http://www.pango.org/">pango</a>upcoming Gnome text widget, and
|
standardforrelated code like the <a href="http://www.pango.org/">pango</a>upcoming Gnome text widget,
|
||||||
a lot of Unix code (yet another placewhere Unix programmer base takes
|
anda lot of Unix code (yet another placewhere Unix programmer base
|
||||||
a different approach from Microsoft- they are using UTF-16)</li>
|
takesa different approach from Microsoft- they are using UTF-16)</li>
|
||||||
</ul></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
|
</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
|
||||||
assembledas UTF-8 valid strings. The proper way to terminate an xmlChar *
|
beassembledas UTF-8 valid strings. The proper way to terminate an xmlChar
|
||||||
stringis simply to append 0 byte, as usual.</li>
|
*stringis simply to append 0 byte, as usual.</li>
|
||||||
<li>One just need to make sure that when using chars outside the ASCII
|
<li>One just need to make sure that when using chars outside the
|
||||||
set,the values has been properly converted to UTF-8</li>
|
ASCIIset,the values has been properly converted to UTF-8</li>
|
||||||
</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
|
</ul><h3><a name="implemente" id="implemente">How is it implemented ?</a></h3><p>Let's describe how all this works within libxml, basically
|
||||||
I18N(internationalization) support get triggered only during I/O operation,
|
theI18N(internationalization) support get triggered only during I/O
|
||||||
i.e.when reading a document or saving one. Let's look first at the
|
operation,i.e.when reading a document or saving one. Let's look first at
|
||||||
readingsequence:</p><ol><li>when a document is processed, we usually don't know the encoding,
|
thereadingsequence:</p><ol><li>when a document is processed, we usually don't know the
|
||||||
asimple heuristic allows to detect UTF-16 and UCS-4 from encodings
|
encoding,asimple heuristic allows to detect UTF-16 and UCS-4 from
|
||||||
wherethe ASCII range (0-0x7F) maps with ASCII</li>
|
encodingswherethe ASCII range (0-0x7F) maps with ASCII</li>
|
||||||
<li>the xml declaration if available is parsed, including the
|
<li>the xml declaration if available is parsed, including
|
||||||
encodingdeclaration. At that point, if the autodetected encoding is
|
theencodingdeclaration. At that point, if the autodetected encoding
|
||||||
differentfrom the one declared a call to xmlSwitchEncoding() is
|
isdifferentfrom the one declared a call to xmlSwitchEncoding()
|
||||||
issued.</li>
|
isissued.</li>
|
||||||
<li>If there is no encoding declaration, then the input has to be in
|
<li>If there is no encoding declaration, then the input has to be
|
||||||
eitherUTF-8 or UTF-16, if it is not then at some point when processing
|
ineitherUTF-8 or UTF-16, if it is not then at some point when
|
||||||
theinput, the converter/checker of UTF-8 form will raise an encoding
|
processingtheinput, the converter/checker of UTF-8 form will raise an
|
||||||
error.You may end-up with a garbled document, or no document at all !
|
encodingerror.You may end-up with a garbled document, or no document at
|
||||||
Example:
|
all !Example:
|
||||||
<pre>~/XML -> ./xmllint err.xml
|
<pre>~/XML -> ./xmllint err.xml
|
||||||
err.xml:1: error: Input is not proper UTF-8, indicate encoding !
|
err.xml:1: error: Input is not proper UTF-8, indicate encoding !
|
||||||
<tr<EFBFBD>s>l<EFBFBD></tr<74>s>
|
<tr<EFBFBD>s>l<EFBFBD></tr<74>s>
|
||||||
@@ -114,94 +114,93 @@ err.xml:1: error: Bytes: 0xE8 0x73 0x3E 0x6C
|
|||||||
<tr<EFBFBD>s>l<EFBFBD></tr<74>s>
|
<tr<EFBFBD>s>l<EFBFBD></tr<74>s>
|
||||||
^</pre>
|
^</pre>
|
||||||
</li>
|
</li>
|
||||||
<li>xmlSwitchEncoding() does an encoding name lookup, canonicalize it,
|
<li>xmlSwitchEncoding() does an encoding name lookup, canonicalize
|
||||||
andthen search the default registered encoding converters for that
|
it,andthen search the default registered encoding converters for
|
||||||
encoding.If it's not within the default set and iconv() support has been
|
thatencoding.If it's not within the default set and iconv() support has
|
||||||
compiledit, it will ask iconv for such an encoder. If this fails then the
|
beencompiledit, it will ask iconv for such an encoder. If this fails then
|
||||||
parserwill report an error and stops processing:
|
theparserwill report an error and stops processing:
|
||||||
<pre>~/XML -> ./xmllint err2.xml
|
<pre>~/XML -> ./xmllint err2.xml
|
||||||
err2.xml:1: error: Unsupported encoding UnsupportedEnc
|
err2.xml:1: error: Unsupported encoding UnsupportedEnc
|
||||||
<?xml version="1.0" encoding="UnsupportedEnc"?>
|
<?xml version="1.0" encoding="UnsupportedEnc"?>
|
||||||
^</pre>
|
^</pre>
|
||||||
</li>
|
</li>
|
||||||
<li>From that point the encoder processes progressively the input (it
|
<li>From that point the encoder processes progressively the input
|
||||||
isplugged as a front-end to the I/O module) for that entity. It
|
(itisplugged as a front-end to the I/O module) for that entity.
|
||||||
capturesand converts on-the-fly the document to be parsed to UTF-8. The
|
Itcapturesand converts on-the-fly the document to be parsed to UTF-8.
|
||||||
parseritself just does UTF-8 checking of this input and process
|
Theparseritself just does UTF-8 checking of this input and
|
||||||
ittransparently. The only difference is that the encoding information
|
processittransparently. The only difference is that the encoding
|
||||||
hasbeen added to the parsing context (more precisely to the
|
informationhasbeen added to the parsing context (more precisely to
|
||||||
inputcorresponding to this entity).</li>
|
theinputcorresponding to this entity).</li>
|
||||||
<li>The result (when using DOM) is an internal form completely in UTF-8with
|
<li>The result (when using DOM) is an internal form completely in
|
||||||
just an encoding information on the document node.</li>
|
UTF-8withjust an encoding information on the document node.</li>
|
||||||
</ol><p>Ok then what happens when saving the document (assuming youcollected/built
|
</ol><p>Ok then what happens when saving the document (assuming
|
||||||
an xmlDoc DOM like structure) ? It depends on the functioncalled,
|
youcollected/builtan xmlDoc DOM like structure) ? It depends on the
|
||||||
xmlSaveFile() will just try to save in the original encoding,
|
functioncalled,xmlSaveFile() will just try to save in the original
|
||||||
whilexmlSaveFileTo() and xmlSaveFileEnc() can optionally save to a
|
encoding,whilexmlSaveFileTo() and xmlSaveFileEnc() can optionally save to
|
||||||
givenencoding:</p><ol><li>if no encoding is given, libxml2 will look for an encoding
|
agivenencoding:</p><ol><li>if no encoding is given, libxml2 will look for an
|
||||||
valueassociated to the document and if it exists will try to save to
|
encodingvalueassociated to the document and if it exists will try to save
|
||||||
thatencoding,
|
tothatencoding,
|
||||||
<p>otherwise everything is written in the internal form, i.e. UTF-8</p>
|
<p>otherwise everything is written in the internal form, i.e. UTF-8</p>
|
||||||
</li>
|
</li>
|
||||||
<li>so if an encoding was specified, either at the API level or on
|
<li>so if an encoding was specified, either at the API level or
|
||||||
thedocument, libxml2 will again canonicalize the encoding name, lookup
|
onthedocument, libxml2 will again canonicalize the encoding name,
|
||||||
for aconverter in the registered set or through iconv. If not found
|
lookupfor aconverter in the registered set or through iconv. If not
|
||||||
thefunction will return an error code</li>
|
foundthefunction will return an error code</li>
|
||||||
<li>the converter is placed before the I/O buffer layer, as another kind
|
<li>the converter is placed before the I/O buffer layer, as another
|
||||||
ofbuffer, then libxml2 will simply push the UTF-8 serialization to
|
kindofbuffer, then libxml2 will simply push the UTF-8 serialization
|
||||||
throughthat buffer, which will then progressively be converted and pushed
|
tothroughthat buffer, which will then progressively be converted and
|
||||||
ontothe I/O layer.</li>
|
pushedontothe I/O layer.</li>
|
||||||
<li>It is possible that the converter code fails on some input, for
|
<li>It is possible that the converter code fails on some input,
|
||||||
exampletrying to push an UTF-8 encoded Chinese character through the
|
forexampletrying to push an UTF-8 encoded Chinese character through
|
||||||
UTF-8 toISO-8859-1 converter won't work. Since the encoders are
|
theUTF-8 toISO-8859-1 converter won't work. Since the encoders
|
||||||
progressive theywill just report the error and the number of bytes
|
areprogressive theywill just report the error and the number of
|
||||||
converted, at thatpoint libxml2 will decode the offending character,
|
bytesconverted, at thatpoint libxml2 will decode the offending
|
||||||
remove it from thebuffer and replace it with the associated charRef
|
character,remove it from thebuffer and replace it with the associated
|
||||||
encoding &#123; andresume the conversion. This guarantees that any
|
charRefencoding &#123; andresume the conversion. This guarantees that
|
||||||
document will be savedwithout losses (except for markup names where this
|
anydocument will be savedwithout losses (except for markup names where
|
||||||
is not legal, this isa problem in the current version, in practice avoid
|
thisis not legal, this isa problem in the current version, in practice
|
||||||
using non-asciicharacters for tag or attribute names). A special "ascii"
|
avoidusing non-asciicharacters for tag or attribute names). A special
|
||||||
encoding nameis used to save documents to a pure ascii form can be used
|
"ascii"encoding nameis used to save documents to a pure ascii form can be
|
||||||
whenportability is really crucial</li>
|
usedwhenportability is really crucial</li>
|
||||||
</ol><p>Here are a few examples based on the same test document:</p><pre>~/XML -> ./xmllint isolat1
|
</ol><p>Here are a few examples based on the same test document:</p><pre>~/XML -> ./xmllint isolat1
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<tr<EFBFBD>s>l<EFBFBD></tr<74>s>
|
<tr<EFBFBD>s>l<EFBFBD></tr<74>s>
|
||||||
~/XML -> ./xmllint --encode UTF-8 isolat1
|
~/XML -> ./xmllint --encode UTF-8 isolat1
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<très>l<EFBFBD> <20></très>
|
<très>l<EFBFBD> <20></très>
|
||||||
~/XML -> </pre><p>The same processing is applied (and reuse most of the code) for HTML
|
~/XML -> </pre><p>The same processing is applied (and reuse most of the code) for
|
||||||
I18Nprocessing. Looking up and modifying the content encoding is a bit
|
HTMLI18Nprocessing. Looking up and modifying the content encoding is a
|
||||||
moredifficult since it is located in a <meta> tag under the
|
bitmoredifficult since it is located in a <meta> tag under
|
||||||
<head>,so a couple of functions htmlGetMetaEncoding() and
|
the<head>,so a couple of functions htmlGetMetaEncoding()
|
||||||
htmlSetMetaEncoding() havebeen provided. The parser also attempts to switch
|
andhtmlSetMetaEncoding() havebeen provided. The parser also attempts to
|
||||||
encoding on the fly whendetecting such a tag on input. Except for that the
|
switchencoding on the fly whendetecting such a tag on input. Except for that
|
||||||
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
|
theprocessing 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 followingencodings(located
|
||||||
encodings(located in encoding.c):</p><ol><li>UTF-8 is supported by default (null handlers)</li>
|
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>UTF-16, both little and big endian</li>
|
||||||
<li>ISO-Latin-1 (ISO-8859-1) covering most western languages</li>
|
<li>ISO-Latin-1 (ISO-8859-1) covering most western languages</li>
|
||||||
<li>ASCII, useful mostly for saving</li>
|
<li>ASCII, useful mostly for saving</li>
|
||||||
<li>HTML, a specific handler for the conversion of UTF-8 to ASCII with
|
<li>HTML, a specific handler for the conversion of UTF-8 to ASCII
|
||||||
HTMLpredefined entities like &copy; for the Copyright sign.</li>
|
withHTMLpredefined entities like &copy; for the Copyright sign.</li>
|
||||||
</ol><p>More over when compiled on an Unix platform with iconv support the fullset
|
</ol><p>More over when compiled on an Unix platform with iconv support the
|
||||||
of encodings supported by iconv can be instantly be used by libxml. On alinux
|
fullsetof encodings supported by iconv can be instantly be used by libxml. On
|
||||||
machine with glibc-2.1 the list of supported encodings and aliases fill3 full
|
alinuxmachine with glibc-2.1 the list of supported encodings and aliases
|
||||||
pages, and include UCS-4, the full set of ISO-Latin encodings, and thevarious
|
fill3 fullpages, and include UCS-4, the full set of ISO-Latin encodings, and
|
||||||
Japanese ones.</p><p>To convert from the UTF-8 values returned from the API to another
|
thevariousJapanese ones.</p><p>To convert from the UTF-8 values returned from the API to
|
||||||
encodingthen it is possible to use the function provided from <a href="html/libxml-encoding.html">the encoding module</a>like <a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a>, or use
|
anotherencodingthen it is possible to use the function provided from <a href="html/libxml-encoding.html">the encoding module</a>like <a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a>, or
|
||||||
thePOSIX <a href="http://www.opengroup.org/onlinepubs/009695399/functions/iconv.html">iconv()</a>API
|
usethePOSIX <a href="http://www.opengroup.org/onlinepubs/009695399/functions/iconv.html">iconv()</a>APIdirectly.</p><h4>Encoding aliases</h4><p>From 2.2.3, libxml2 has support to register encoding names aliases.Thegoal
|
||||||
directly.</p><h4>Encoding aliases</h4><p>From 2.2.3, libxml2 has support to register encoding names aliases.
|
is to be able to parse document whose encoding is supported butwherethe name
|
||||||
Thegoal is to be able to parse document whose encoding is supported but
|
differs (for example from the default set of names acceptedbyiconv). The
|
||||||
wherethe name differs (for example from the default set of names accepted
|
following functions allow to register and handle new aliasesforexisting
|
||||||
byiconv). The following functions allow to register and handle new aliases
|
encodings. Once registered libxml2 will automatically lookupthealiases when
|
||||||
forexisting encodings. Once registered libxml2 will automatically lookup
|
handling a document:</p><ul><li>int xmlAddEncodingAlias(const char *name, const char *alias);</li>
|
||||||
thealiases when handling a document:</p><ul><li>int xmlAddEncodingAlias(const char *name, const char *alias);</li>
|
|
||||||
<li>int xmlDelEncodingAlias(const char *alias);</li>
|
<li>int xmlDelEncodingAlias(const char *alias);</li>
|
||||||
<li>const char * xmlGetEncodingAlias(const char *alias);</li>
|
<li>const char * xmlGetEncodingAlias(const char *alias);</li>
|
||||||
<li>void xmlCleanupEncodingAliases(void);</li>
|
<li>void xmlCleanupEncodingAliases(void);</li>
|
||||||
</ul><h3><a name="extend" id="extend">How to extend the existing support</a></h3><p>Well adding support for new encoding, or overriding one of the
|
</ul><h3><a name="extend" id="extend">How to extend the existing support</a></h3><p>Well adding support for new encoding, or overriding one of
|
||||||
encoders(assuming it is buggy) should not be hard, just write input and
|
theencoders(assuming it is buggy) should not be hard, just write input
|
||||||
outputconversion routines to/from UTF-8, and register them
|
andoutputconversion routines to/from UTF-8, and register
|
||||||
usingxmlNewCharEncodingHandler(name, xxxToUTF8, UTF8Toxxx), and they will
|
themusingxmlNewCharEncodingHandler(name, xxxToUTF8, UTF8Toxxx), and they
|
||||||
becalled automatically if the parser(s) encounter such an encoding
|
willbecalled automatically if the parser(s) encounter such an
|
||||||
name(register it uppercase, this will help). The description of the
|
encodingname(register it uppercase, this will help). The description of
|
||||||
encoders,their arguments and expected return values are described in the
|
theencoders,their arguments and expected return values are described in
|
||||||
encoding.hheader.</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>
|
theencoding.hheader.</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
@@ -7,18 +7,17 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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
|
</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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
|
||||||
tosubscribe 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
|
istosubscribe 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">Gnomebugdatabase</a>:</p><ol><li>Provide patches when you find problems.</li>
|
||||||
bugdatabase</a>:</p><ol><li>Provide patches when you find problems.</li>
|
<li>Provide the diffs when you port libxml2 to a new platform. They
|
||||||
<li>Provide the diffs when you port libxml2 to a new platform. They may
|
maynotbe integrated in all cases but help pinpointing
|
||||||
notbe integrated in all cases but help pinpointing portability
|
portabilityproblemsand</li>
|
||||||
problemsand</li>
|
<li>Provide documentation fixes (either as patches to the code commentsoras
|
||||||
<li>Provide documentation fixes (either as patches to the code comments
|
HTML diffs).</li>
|
||||||
oras HTML diffs).</li>
|
|
||||||
<li>Provide new documentations pieces (translations, examples, etc...).</li>
|
<li>Provide new documentations pieces (translations, examples, etc...).</li>
|
||||||
<li>Check the TODO file and try to close one of the items.</li>
|
<li>Check the TODO file and try to close one of the items.</li>
|
||||||
<li>Take one of the points raised in the archive or the bug database
|
<li>Take one of the points raised in the archive or the bug
|
||||||
andprovide a fix. <a href="mailto:daniel@veillard.com">Get in touch with
|
databaseandprovide a fix. <a href="mailto:daniel@veillard.com">Get in
|
||||||
me</a>before to avoid synchronization problems and check that the
|
touch withme</a>before to avoid synchronization problems and check that
|
||||||
suggestedfix will fit in nicely :-)</li>
|
thesuggestedfix will fit in nicely :-)</li>
|
||||||
</ol><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>
|
</ol><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>
|
||||||
|
|||||||
108
doc/index.html
108
doc/index.html
@@ -216,73 +216,73 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<tr>
|
<tr>
|
||||||
<td bgcolor="#fffacd">
|
<td bgcolor="#fffacd">
|
||||||
<p></p>
|
<p></p>
|
||||||
<p style="text-align: right; font-style: italic; font-size: 10pt">"Programmingwith
|
<p style="text-align: right; font-style: italic; font-size: 10pt">"Programmingwithlibxml2
|
||||||
libxml2 is like the thrilling embrace of an exotic stranger." <a href="http://diveintomark.org/archives/2004/02/18/libxml2">MarkPilgrim</a></p>
|
is like the thrilling embrace of an exotic stranger." <a href="http://diveintomark.org/archives/2004/02/18/libxml2">MarkPilgrim</a></p>
|
||||||
<p>Libxml2 is the XML C parser and toolkit developed for the Gnome
|
<p>Libxml2 is the XML C parser and toolkit developed for the Gnomeproject(but
|
||||||
project(but usable outside of the Gnome platform), it is free software
|
usable outside of the Gnome platform), it is free softwareavailableunder the
|
||||||
availableunder the <a href="http://www.opensource.org/licenses/mit-license.html">MITLicense</a>.
|
<a href="http://www.opensource.org/licenses/mit-license.html">MITLicense</a>.XML
|
||||||
XML itself is a metalanguage to design markup languages, i.e.text language
|
itself is a metalanguage to design markup languages, i.e.text languagewhere
|
||||||
where semantic and structure are added to the content usingextra "markup"
|
semantic and structure are added to the content usingextra
|
||||||
information enclosed between angle brackets. HTML is the mostwell-known
|
"markup"information enclosed between angle brackets. HTML is the
|
||||||
markup language. Though the library is written in C <a href="python.html">a
|
mostwell-knownmarkup language. Though the library is written in C <a href="python.html">avariety of language bindings</a>make it available inother
|
||||||
variety of language bindings</a>make it available inother environments.</p>
|
environments.</p>
|
||||||
<p>Libxml2 is known to be very portable, the library should build and
|
<p>Libxml2 is known to be very portable, the library should build
|
||||||
workwithout serious troubles on a variety of systems (Linux, Unix,
|
andworkwithout serious troubles on a variety of systems (Linux,
|
||||||
Windows,CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, ...)</p>
|
Unix,Windows,CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, ...)</p>
|
||||||
<p>Libxml2 implements a number of existing standards related to
|
<p>Libxml2 implements a number of existing standards related
|
||||||
markuplanguages:</p>
|
tomarkuplanguages:</p>
|
||||||
<ul><li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
|
<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>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>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
|
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC2396</a>:Uniform
|
||||||
2396</a>:Uniform Resource Identifiers <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a></li>
|
Resource Identifiers <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a></li>
|
||||||
<li>XML Path Language (XPath) 1.0: <a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a></li>
|
<li>XML Path Language (XPath) 1.0: <a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a></li>
|
||||||
<li>HTML4 parser: <a href="http://www.w3.org/TR/html401/">http://www.w3.org/TR/html401/</a></li>
|
<li>HTML4 parser: <a href="http://www.w3.org/TR/html401/">http://www.w3.org/TR/html401/</a></li>
|
||||||
<li>XML Pointer Language (XPointer) Version 1.0: <a href="http://www.w3.org/TR/xptr">http://www.w3.org/TR/xptr</a></li>
|
<li>XML Pointer Language (XPointer) Version 1.0: <a href="http://www.w3.org/TR/xptr">http://www.w3.org/TR/xptr</a></li>
|
||||||
<li>XML Inclusions (XInclude) Version 1.0: <a href="http://www.w3.org/TR/xinclude/">http://www.w3.org/TR/xinclude/</a></li>
|
<li>XML Inclusions (XInclude) Version 1.0: <a href="http://www.w3.org/TR/xinclude/">http://www.w3.org/TR/xinclude/</a></li>
|
||||||
<li>ISO-8859-x encodings, as well as <a href="http://www.cis.ohio-state.edu/rfc/rfc2044.txt">rfc2044</a>[UTF-8]and
|
<li>ISO-8859-x encodings, as well as <a href="http://www.cis.ohio-state.edu/rfc/rfc2044.txt">rfc2044</a>[UTF-8]and<a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a>[UTF-16]Unicode
|
||||||
<a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a>[UTF-16]
|
encodings, and more if using iconv support</li>
|
||||||
Unicode encodings, and more if using iconv support</li>
|
|
||||||
<li>part of SGML Open Technical Resolution TR9401:1997</li>
|
<li>part of SGML Open Technical Resolution TR9401:1997</li>
|
||||||
<li>XML Catalogs Working Draft 06 August 2001: <a href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">http://www.oasis-open.org/committees/entity/spec-2001-08-06.html</a></li>
|
<li>XML Catalogs Working Draft 06 August 2001: <a href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">http://www.oasis-open.org/committees/entity/spec-2001-08-06.html</a></li>
|
||||||
<li>Canonical XML Version 1.0: <a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a>and
|
<li>Canonical XML Version 1.0: <a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a>andthe
|
||||||
the Exclusive XML Canonicalization CR draft <a href="http://www.w3.org/TR/xml-exc-c14n">http://www.w3.org/TR/xml-exc-c14n</a></li>
|
Exclusive XML Canonicalization CR draft <a href="http://www.w3.org/TR/xml-exc-c14n">http://www.w3.org/TR/xml-exc-c14n</a></li>
|
||||||
<li>Relax NG, ISO/IEC 19757-2:2003, <a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">http://www.oasis-open.org/committees/relax-ng/spec-20011203.html</a></li>
|
<li>Relax NG, ISO/IEC 19757-2:2003, <a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">http://www.oasis-open.org/committees/relax-ng/spec-20011203.html</a></li>
|
||||||
<li>W3C XML Schemas Part 2: Datatypes <a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">REC 02
|
<li>W3C XML Schemas Part 2: Datatypes <a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">REC
|
||||||
May2001</a></li>
|
02May2001</a></li>
|
||||||
<li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a>Working Draft
|
<li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a>Working
|
||||||
7April 2004</li>
|
Draft7April 2004</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>In most cases libxml2 tries to implement the specifications in arelatively
|
<p>In most cases libxml2 tries to implement the specifications in
|
||||||
strictly compliant way. As of release 2.4.16, libxml2 passed all1800+ tests
|
arelativelystrictly compliant way. As of release 2.4.16, libxml2 passed
|
||||||
from the <a href="http://www.oasis-open.org/committees/xml-conformance/">OASIS XML
|
all1800+ testsfrom the <a href="http://www.oasis-open.org/committees/xml-conformance/">OASIS
|
||||||
TestsSuite</a>.</p>
|
XMLTestsSuite</a>.</p>
|
||||||
<p>To some extent libxml2 provides support for the following
|
<p>To some extent libxml2 provides support for the
|
||||||
additionalspecifications but doesn't claim to implement them completely:</p>
|
followingadditionalspecifications but doesn't claim to implement them
|
||||||
<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
|
completely:</p>
|
||||||
document model, but it doesn't implement the API itself, gdome2 doesthis
|
<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>thedocument
|
||||||
on top of libxml2</li>
|
model, but it doesn't implement the API itself, gdome2 doesthison top of
|
||||||
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC
|
libxml2</li>
|
||||||
959</a>:libxml2 implements a basic FTP client code</li>
|
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC959</a>:libxml2
|
||||||
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC
|
implements a basic FTP client code</li>
|
||||||
1945</a>:HTTP/1.0, again a basic HTTP client code</li>
|
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC1945</a>:HTTP/1.0,
|
||||||
<li>SAX: a SAX2 like interface and a minimal SAX1 implementation
|
again a basic HTTP client code</li>
|
||||||
compatiblewith early expat versions</li>
|
<li>SAX: a SAX2 like interface and a minimal SAX1
|
||||||
|
implementationcompatiblewith early expat versions</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>A partial implementation of <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas Part1:
|
<p>A partial implementation of <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas
|
||||||
Structure</a>is being worked on but it would be far too early to make
|
Part1:Structure</a>is being worked on but it would be far too early to
|
||||||
anyconformance statement about it at the moment.</p>
|
makeanyconformance statement about it at the moment.</p>
|
||||||
<p>Separate documents:</p>
|
<p>Separate documents:</p>
|
||||||
<ul><li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a>providing
|
<ul><li><a href="http://xmlsoft.org/XSLT/">the libxslt
|
||||||
animplementation of XSLT 1.0 and common extensions like EXSLT
|
page</a>providinganimplementation of XSLT 1.0 and common extensions like
|
||||||
forlibxml2</li>
|
EXSLTforlibxml2</li>
|
||||||
<li><a href="http://www.cs.unibo.it/~casarini/gdome2/">the gdome2 page</a>:
|
<li><a href="http://www.cs.unibo.it/~casarini/gdome2/">the gdome2
|
||||||
a standard DOM2 implementation for libxml2</li>
|
page</a>:a standard DOM2 implementation for libxml2</li>
|
||||||
<li><a href="http://www.aleksey.com/xmlsec/">the XMLSec page</a>:
|
<li><a href="http://www.aleksey.com/xmlsec/">the XMLSec
|
||||||
animplementation of <a href="http://www.w3.org/TR/xmldsig-core/">W3C
|
page</a>:animplementation of <a href="http://www.w3.org/TR/xmldsig-core/">W3CXMLDigital Signature</a>for
|
||||||
XMLDigital Signature</a>for libxml2</li>
|
libxml2</li>
|
||||||
<li>also check the related links section below for more related and
|
<li>also check the related links section below for more related
|
||||||
activeprojects.</li>
|
andactiveprojects.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p>
|
<p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -7,23 +7,23 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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
|
</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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
|
||||||
tag-basedstructured documents/data.</p><p>Here are some key points about libxml:</p><ul><li>Libxml2 exports Push (progressive) and Pull (blocking) type
|
buildingtag-basedstructured documents/data.</p><p>Here are some key points about libxml:</p><ul><li>Libxml2 exports Push (progressive) and Pull (blocking)
|
||||||
parserinterfaces for both XML and HTML.</li>
|
typeparserinterfaces for both XML and HTML.</li>
|
||||||
<li>Libxml2 can do DTD validation at parse time, using a parsed
|
<li>Libxml2 can do DTD validation at parse time, using a
|
||||||
documentinstance, or with an arbitrary DTD.</li>
|
parseddocumentinstance, or with an arbitrary DTD.</li>
|
||||||
<li>Libxml2 includes complete <a href="http://www.w3.org/TR/xpath">XPath</a>, <a href="http://www.w3.org/TR/xptr">XPointer</a>and <a href="http://www.w3.org/TR/xinclude">XInclude</a>implementations.</li>
|
<li>Libxml2 includes complete <a href="http://www.w3.org/TR/xpath">XPath</a>, <a href="http://www.w3.org/TR/xptr">XPointer</a>and <a href="http://www.w3.org/TR/xinclude">XInclude</a>implementations.</li>
|
||||||
<li>It is written in plain C, making as few assumptions as possible,
|
<li>It is written in plain C, making as few assumptions as
|
||||||
andsticking closely to ANSI C/POSIX for easy embedding. Works
|
possible,andsticking closely to ANSI C/POSIX for easy embedding.
|
||||||
onLinux/Unix/Windows, ported to a number of other platforms.</li>
|
WorksonLinux/Unix/Windows, ported to a number of other platforms.</li>
|
||||||
<li>Basic support for HTTP and FTP client allowing applications to
|
<li>Basic support for HTTP and FTP client allowing applications
|
||||||
fetchremote resources.</li>
|
tofetchremote resources.</li>
|
||||||
<li>The design is modular, most of the extensions can be compiled out.</li>
|
<li>The design is modular, most of the extensions can be compiled out.</li>
|
||||||
<li>The internal document representation is as close as possible to the <a href="http://www.w3.org/DOM/">DOM</a>interfaces.</li>
|
<li>The internal document representation is as close as possible to the <a href="http://www.w3.org/DOM/">DOM</a>interfaces.</li>
|
||||||
<li>Libxml2 also has a <a href="http://www.megginson.com/SAX/index.html">SAX like interface</a>;the
|
<li>Libxml2 also has a <a href="http://www.megginson.com/SAX/index.html">SAX like
|
||||||
interface is designed to be compatible with <a href="http://www.jclark.com/xml/expat.html">Expat</a>.</li>
|
interface</a>;theinterface is designed to be compatible with <a href="http://www.jclark.com/xml/expat.html">Expat</a>.</li>
|
||||||
<li>This library is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MITLicense</a>.
|
<li>This library is released under the <a href="http://www.opensource.org/licenses/mit-license.html">MITLicense</a>.See
|
||||||
See the Copyright file in the distribution for the precisewording.</li>
|
the Copyright file in the distribution for the precisewording.</li>
|
||||||
</ul><p>Warning: unless you are forced to because your application links with
|
</ul><p>Warning: unless you are forced to because your application links
|
||||||
aGnome-1.X library requiring it, <strong><span style="background-color: #FF0000">Do Not Use libxml1</span></strong>,
|
withaGnome-1.X library requiring it, <strong><span style="background-color: #FF0000">Do Not Use
|
||||||
uselibxml2</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>
|
libxml1</span></strong>,uselibxml2</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>
|
||||||
|
|||||||
135
doc/library.html
135
doc/library.html
File diff suppressed because one or more lines are too long
@@ -8,33 +8,9 @@
|
|||||||
</vendor>
|
</vendor>
|
||||||
<product id="libxml2">
|
<product id="libxml2">
|
||||||
<name>libxml2</name>
|
<name>libxml2</name>
|
||||||
<version>2.6.24</version>
|
<version>2.6.25</version>
|
||||||
<last-release> Apr 28 2006</last-release>
|
<last-release> Jun 6 2006:</last-release>
|
||||||
<info-url>http://xmlsoft.org/</info-url>
|
<info-url>http://xmlsoft.org/</info-url>
|
||||||
<changes> - Portability fixes: configure on Windows, testapi compile on
|
<changes>Do not use or package 2.6.25</changes>
|
||||||
windows(Kasimier Buchcik, venkat naidu), Borland C++ 6 compile (Eric
|
|
||||||
Zurcher),HP-UX compiler workaround (Rick Jones), xml2-config bugfix,
|
|
||||||
gcc-4.1cleanups, Python detection scheme (Joseph Sacco), UTF-8 file paths
|
|
||||||
onWindows (Roland Schwingel).
|
|
||||||
- Improvements: xmlDOMWrapReconcileNamespaces xmlDOMWrapCloneNode
|
|
||||||
(KasimierBuchcik), XML catalog debugging (Rick Jones), update to Unicode
|
|
||||||
4.01.
|
|
||||||
- Bug fixes: xmlParseChunk() problem in 2.6.23, xmlParseInNodeContext()on
|
|
||||||
HTML docs, URI behaviour on Windows (Rob Richards), comment streamingbug,
|
|
||||||
xmlParseComment (with William Brack), regexp bug fixes (DV &Youri
|
|
||||||
Golovanov), xmlGetNodePath on text/CDATA (Kasimier),one Relax-NG
|
|
||||||
interleave bug, xmllint --path and --valid,XSD bugfixes (Kasimier),
|
|
||||||
remove debugleft in Python bindings (Nic Ferrier), xmlCatalogAdd bug
|
|
||||||
(Martin Cole),xmlSetProp fixes (Rob Richards), HTML IDness (Rob
|
|
||||||
Richards), a largenumber of cleanups and small fixes based on Coverity
|
|
||||||
reports, bugin character ranges, Unicode tables const (Aivars Kalvans),
|
|
||||||
schemasfix (Stefan Kost), xmlRelaxNGParse error
|
|
||||||
deallocation,xmlSchemaAddSchemaDoc error deallocation, error handling on
|
|
||||||
unallowedcode point, ixmllint --nonet to never reach the net (Gary
|
|
||||||
Coady),line break in writer after end PI (Jason Viers).
|
|
||||||
- Documentation: man pages updates and cleanups (Daniel Leidert).
|
|
||||||
- New features: Relax NG structure error handlers.
|
|
||||||
|
|
||||||
</changes>
|
|
||||||
</product>
|
</product>
|
||||||
</xsa>
|
</xsa>
|
||||||
|
|||||||
@@ -7,44 +7,44 @@ H1 {font-family: Verdana,Arial,Helvetica}
|
|||||||
H2 {font-family: Verdana,Arial,Helvetica}
|
H2 {font-family: Verdana,Arial,Helvetica}
|
||||||
H3 {font-family: Verdana,Arial,Helvetica}
|
H3 {font-family: Verdana,Arial,Helvetica}
|
||||||
A:link, A:visited, A:active { text-decoration: underline }
|
A:link, A:visited, A:active { text-decoration: underline }
|
||||||
</style><title>Namespaces</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>Namespaces</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>The libxml2 library implements <a href="http://www.w3.org/TR/REC-xml-names/">XML namespaces</a>support
|
</style><title>Namespaces</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>Namespaces</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://www.blastwave.org/packages.php/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</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>The libxml2 library implements <a href="http://www.w3.org/TR/REC-xml-names/">XML
|
||||||
byrecognizing namespace constructs in the input, and does namespace
|
namespaces</a>supportbyrecognizing namespace constructs in the input, and
|
||||||
lookupautomatically when building the DOM tree. A namespace declaration
|
does namespacelookupautomatically when building the DOM tree. A namespace
|
||||||
isassociated with an in-memory structure and all elements or attributes
|
declarationisassociated with an in-memory structure and all elements or
|
||||||
withinthat namespace point to it. Hence testing the namespace is a simple and
|
attributeswithinthat namespace point to it. Hence testing the namespace is a
|
||||||
fastequality operation at the user level.</p><p>I suggest that people using libxml2 use a namespace, and declare it in
|
simple andfastequality operation at the user level.</p><p>I suggest that people using libxml2 use a namespace, and declare it
|
||||||
theroot element of their document as the default namespace. Then they don't
|
intheroot element of their document as the default namespace. Then they
|
||||||
needto use the prefix in the content but we will have a basis for future
|
don'tneedto use the prefix in the content but we will have a basis for
|
||||||
semanticrefinement and merging of data from different sources. This doesn't
|
futuresemanticrefinement and merging of data from different sources. This
|
||||||
increasethe size of the XML output significantly, but significantly increases
|
doesn'tincreasethe size of the XML output significantly, but significantly
|
||||||
itsvalue in the long-term. Example:</p><pre><mydoc xmlns="http://mydoc.example.org/schemas/">
|
increasesitsvalue in the long-term. Example:</p><pre><mydoc xmlns="http://mydoc.example.org/schemas/">
|
||||||
<elem1>...</elem1>
|
<elem1>...</elem1>
|
||||||
<elem2>...</elem2>
|
<elem2>...</elem2>
|
||||||
</mydoc></pre><p>The namespace value has to be an absolute URL, but the URL doesn't have
|
</mydoc></pre><p>The namespace value has to be an absolute URL, but the URL doesn't
|
||||||
topoint to any existing resource on the Web. It will bind all the element
|
havetopoint to any existing resource on the Web. It will bind all the
|
||||||
andattributes with that URL. I suggest to use an URL within a domain
|
elementandattributes with that URL. I suggest to use an URL within a
|
||||||
youcontrol, and that the URL should contain some kind of version information
|
domainyoucontrol, and that the URL should contain some kind of version
|
||||||
ifpossible. For example, <code>"http://www.gnome.org/gnumeric/1.0/"</code>is
|
informationifpossible. For example,
|
||||||
agood namespace scheme.</p><p>Then when you load a file, make sure that a namespace carrying
|
<code>"http://www.gnome.org/gnumeric/1.0/"</code>isagood namespace scheme.</p><p>Then when you load a file, make sure that a namespace
|
||||||
theversion-independent prefix is installed on the root element of your
|
carryingtheversion-independent prefix is installed on the root element of
|
||||||
document,and if the version information don't match something you know, warn
|
yourdocument,and if the version information don't match something you know,
|
||||||
the userand be liberal in what you accept as the input. Also do *not* try to
|
warnthe userand be liberal in what you accept as the input. Also do *not* try
|
||||||
basenamespace checking on the prefix value. <foo:text> may be exactly
|
tobasenamespace checking on the prefix value. <foo:text> may be
|
||||||
thesame as <bar:text> in another document. What really matters is the
|
exactlythesame as <bar:text> in another document. What really matters
|
||||||
URIassociated with the element or the attribute, not the prefix string (which
|
is theURIassociated with the element or the attribute, not the prefix string
|
||||||
isjust a shortcut for the full URI). In libxml, element and attributes have
|
(whichisjust a shortcut for the full URI). In libxml, element and attributes
|
||||||
an<code>ns</code>field pointing to an xmlNs structure detailing the
|
havean<code>ns</code>field pointing to an xmlNs structure detailing
|
||||||
namespaceprefix and its URI.</p><p>@@Interfaces@@</p><pre>xmlNodePtr node;
|
thenamespaceprefix and its URI.</p><p>@@Interfaces@@</p><pre>xmlNodePtr node;
|
||||||
if(!strncmp(node->name,"mytag",5)
|
if(!strncmp(node->name,"mytag",5)
|
||||||
&& node->ns
|
&& node->ns
|
||||||
&& !strcmp(node->ns->href,"http://www.mysite.com/myns/1.0")) {
|
&& !strcmp(node->ns->href,"http://www.mysite.com/myns/1.0")) {
|
||||||
...
|
...
|
||||||
}</pre><p>Usually people object to using namespaces together with validity
|
}</pre><p>Usually people object to using namespaces together with validitychecking.I
|
||||||
checking.I will try to make sure that using namespaces won't break validity
|
will try to make sure that using namespaces won't break validitychecking,so
|
||||||
checking,so even if you plan to use or currently are using validation I
|
even if you plan to use or currently are using validation Istronglysuggest
|
||||||
stronglysuggest adding namespaces to your document. A default namespace
|
adding namespaces to your document. A default
|
||||||
scheme<code>xmlns="http://...."</code>should not break validity even on
|
namespacescheme<code>xmlns="http://...."</code>should not break validity even
|
||||||
lessflexible parsers. Using namespaces to mix and differentiate content
|
onlessflexible parsers. Using namespaces to mix and differentiate
|
||||||
comingfrom multiple DTDs will certainly break current validation schemes. To
|
contentcomingfrom multiple DTDs will certainly break current validation
|
||||||
checksuch documents one needs to use schema-validation, which is supported
|
schemes. Tochecksuch documents one needs to use schema-validation, which is
|
||||||
inlibxml2 as well. See <a href="http://www.relaxng.org/">relagx-ng</a>and <a href="http://www.w3c.org/XML/Schema">w3c-schema</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>
|
supportedinlibxml2 as well. See <a href="http://www.relaxng.org/">relagx-ng</a>and <a href="http://www.w3c.org/XML/Schema">w3c-schema</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>
|
||||||
|
|||||||
1683
doc/news.html
1683
doc/news.html
File diff suppressed because it is too large
Load Diff
244
doc/python.html
244
doc/python.html
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
190
doc/upgrade.html
190
doc/upgrade.html
File diff suppressed because one or more lines are too long
4773
doc/xml.html
4773
doc/xml.html
File diff suppressed because it is too large
Load Diff
151
doc/xmldtd.html
151
doc/xmldtd.html
@@ -17,83 +17,84 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<li><a href="#Some">Some examples</a></li>
|
<li><a href="#Some">Some examples</a></li>
|
||||||
<li><a href="#validate">How to validate</a></li>
|
<li><a href="#validate">How to validate</a></li>
|
||||||
<li><a href="#Other">Other resources</a></li>
|
<li><a href="#Other">Other resources</a></li>
|
||||||
</ol><h3><a name="General5" id="General5">General overview</a></h3><p>Well what is validation and what is a DTD ?</p><p>DTD is the acronym for Document Type Definition. This is a description
|
</ol><h3><a name="General5" id="General5">General overview</a></h3><p>Well what is validation and what is a DTD ?</p><p>DTD is the acronym for Document Type Definition. This is a
|
||||||
ofthe content for a family of XML files. This is part of the XML
|
descriptionofthe content for a family of XML files. This is part of the
|
||||||
1.0specification, and allows one to describe and verify that a given
|
XML1.0specification, and allows one to describe and verify that a
|
||||||
documentinstance conforms to the set of rules detailing its structure and
|
givendocumentinstance conforms to the set of rules detailing its structure
|
||||||
content.</p><p>Validation is the process of checking a document against a DTD
|
andcontent.</p><p>Validation is the process of checking a document against a
|
||||||
(moregenerally against a set of construction rules).</p><p>The validation process and building DTDs are the two most difficult
|
DTD(moregenerally against a set of construction rules).</p><p>The validation process and building DTDs are the two most difficultpartsof
|
||||||
partsof the XML life cycle. Briefly a DTD defines all the possible elements
|
the XML life cycle. Briefly a DTD defines all the possible elementsto befound
|
||||||
to befound within your document, what is the formal shape of your document
|
within your document, what is the formal shape of your documenttree(by
|
||||||
tree(by defining the allowed content of an element; either text, a
|
defining the allowed content of an element; either text, aregularexpression
|
||||||
regularexpression for the allowed list of children, or mixed content i.e.
|
for the allowed list of children, or mixed content i.e.both textand
|
||||||
both textand children). The DTD also defines the valid attributes for all
|
children). The DTD also defines the valid attributes for allelements andthe
|
||||||
elements andthe 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
|
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
|
||||||
ofRev1</a>):</p><ul><li><a href="http://www.w3.org/TR/REC-xml#elemdecls">Declaringelements</a></li>
|
versionofRev1</a>):</p><ul><li><a href="http://www.w3.org/TR/REC-xml#elemdecls">Declaringelements</a></li>
|
||||||
<li><a href="http://www.w3.org/TR/REC-xml#attdecls">Declaringattributes</a></li>
|
<li><a href="http://www.w3.org/TR/REC-xml#attdecls">Declaringattributes</a></li>
|
||||||
</ul><p>(unfortunately) all this is inherited from the SGML world, the syntax
|
</ul><p>(unfortunately) all this is inherited from the SGML world, the
|
||||||
isancient...</p><h3><a name="Simple1" id="Simple1">Simple rules</a></h3><p>Writing DTDs can be done in many ways. The rules to build them if you
|
syntaxisancient...</p><h3><a name="Simple1" id="Simple1">Simple rules</a></h3><p>Writing DTDs can be done in many ways. The rules to build them if
|
||||||
needsomething permanent or something which can evolve over time can be
|
youneedsomething permanent or something which can evolve over time can
|
||||||
radicallydifferent. Really complex DTDs like DocBook ones are flexible but
|
beradicallydifferent. Really complex DTDs like DocBook ones are flexible
|
||||||
quiteharder to design. I will just focus on DTDs for a formats with a fixed
|
butquiteharder to design. I will just focus on DTDs for a formats with a
|
||||||
simplestructure. It is just a set of basic rules, and definitely not
|
fixedsimplestructure. It is just a set of basic rules, and definitely
|
||||||
exhaustive norusable 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 dtdis
|
notexhaustive norusable 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
|
||||||
placed in the file <code>mydtd</code>in the subdirectory<code>dtds</code>of
|
dtdisplaced in the file <code>mydtd</code>in the
|
||||||
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
|
subdirectory<code>dtds</code>ofthe directory from where the document were
|
||||||
afull URL string indicating the location of your DTD on the Web. This is
|
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
|
||||||
areally good thing to do if you want others to validate your
|
useafull URL string indicating the location of your DTD on the Web. This
|
||||||
document.</li>
|
isareally good thing to do if you want others to validate
|
||||||
<li>It is also possible to associate a <code>PUBLIC</code>identifier
|
yourdocument.</li>
|
||||||
(amagic string) so that the DTD is looked up in catalogs on the client
|
<li>It is also possible to associate a <code>PUBLIC</code>identifier(amagic
|
||||||
sidewithout having to locate it on the web.</li>
|
string) so that the DTD is looked up in catalogs on the clientsidewithout
|
||||||
<li>A DTD contains a set of element and attribute declarations, but
|
having to locate it on the web.</li>
|
||||||
theydon't define what the root of the document should be. This is
|
<li>A DTD contains a set of element and attribute declarations,
|
||||||
explicitlytold to the parser/validator as the first element of
|
buttheydon't define what the root of the document should be. This
|
||||||
the<code>DOCTYPE</code>declaration.</li>
|
isexplicitlytold to the parser/validator as the first element
|
||||||
</ul><h4><a name="Declaring2" id="Declaring2">Declaring elements</a>:</h4><p>The following declares an element <code>spec</code>:</p><p><code><!ELEMENT spec (front, body, back?)></code></p><p>It also expresses that the spec element contains one
|
ofthe<code>DOCTYPE</code>declaration.</li>
|
||||||
<code>front</code>,one <code>body</code>and one optional
|
</ul><h4><a name="Declaring2" id="Declaring2">Declaring elements</a>:</h4><p>The following declares an element <code>spec</code>:</p><p><code><!ELEMENT spec (front, body, back?)></code></p><p>It also expresses that the spec element contains one<code>front</code>,one
|
||||||
<code>back</code>children elements inthis order. The declaration of one
|
<code>body</code>and one optional<code>back</code>children elements inthis
|
||||||
element of the structure and its contentare done in a single declaration.
|
order. The declaration of oneelement of the structure and its contentare done
|
||||||
Similarly the following declares<code>div1</code>elements:</p><p><code><!ELEMENT div1 (head, (p | list | note)*, div2?)></code></p><p>which means div1 contains one <code>head</code>then a series of
|
in a single declaration.Similarly the following
|
||||||
optional<code>p</code>, <code>list</code>s and <code>note</code>s and then
|
declares<code>div1</code>elements:</p><p><code><!ELEMENT div1 (head, (p | list | note)*, div2?)></code></p><p>which means div1 contains one <code>head</code>then a series
|
||||||
anoptional <code>div2</code>. And last but not least an element can
|
ofoptional<code>p</code>, <code>list</code>s and <code>note</code>s and
|
||||||
containtext:</p><p><code><!ELEMENT b (#PCDATA)></code></p><p><code>b</code>contains text or being of mixed content (text and elementsin
|
thenanoptional <code>div2</code>. And last but not least an element
|
||||||
no particular order):</p><p><code><!ELEMENT p (#PCDATA|a|ul|b|i|em)*></code></p><p><code>p </code>can contain text or <code>a</code>,
|
cancontaintext:</p><p><code><!ELEMENT b (#PCDATA)></code></p><p><code>b</code>contains text or being of mixed content (text and
|
||||||
<code>ul</code>,<code>b</code>, <code>i </code>or <code>em</code>elements in
|
elementsinno particular order):</p><p><code><!ELEMENT p (#PCDATA|a|ul|b|i|em)*></code></p><p><code>p </code>can contain text or
|
||||||
no particularorder.</p><h4><a name="Declaring1" id="Declaring1">Declaring attributes</a>:</h4><p>Again the attributes declaration includes their content definition:</p><p><code><!ATTLIST termdef name CDATA #IMPLIED></code></p><p>means that the element <code>termdef</code>can have a
|
<code>a</code>,<code>ul</code>,<code>b</code>, <code>i </code>or
|
||||||
<code>name</code>attribute containing text (<code>CDATA</code>) and which is
|
<code>em</code>elements inno particularorder.</p><h4><a name="Declaring1" id="Declaring1">Declaring attributes</a>:</h4><p>Again the attributes declaration includes their content definition:</p><p><code><!ATTLIST termdef name CDATA #IMPLIED></code></p><p>means that the element <code>termdef</code>can have
|
||||||
optional(<code>#IMPLIED</code>). The attribute value can also be defined
|
a<code>name</code>attribute containing text (<code>CDATA</code>) and which
|
||||||
within aset:</p><p><code><!ATTLIST list type
|
isoptional(<code>#IMPLIED</code>). The attribute value can also be
|
||||||
(bullets|ordered|glossary)"ordered"></code></p><p>means <code>list</code>element have a <code>type</code>attribute with
|
definedwithin aset:</p><p><code><!ATTLIST list
|
||||||
3allowed values "bullets", "ordered" or "glossary" and which default
|
type(bullets|ordered|glossary)"ordered"></code></p><p>means <code>list</code>element have a <code>type</code>attribute
|
||||||
to"ordered" if the attribute is not explicitly specified.</p><p>The content type of an attribute can be text
|
with3allowed values "bullets", "ordered" or "glossary" and which
|
||||||
(<code>CDATA</code>),anchor/reference/references(<code>ID</code>/<code>IDREF</code>/<code>IDREFS</code>),
|
defaultto"ordered" if the attribute is not explicitly specified.</p><p>The content type of an attribute can be
|
||||||
entity(ies)(<code>ENTITY</code>/<code>ENTITIES</code>) or
|
text(<code>CDATA</code>),anchor/reference/references(<code>ID</code>/<code>IDREF</code>/<code>IDREFS</code>),entity(ies)(<code>ENTITY</code>/<code>ENTITIES</code>)
|
||||||
name(s)(<code>NMTOKEN</code>/<code>NMTOKENS</code>). The following defines
|
orname(s)(<code>NMTOKEN</code>/<code>NMTOKENS</code>). The following
|
||||||
that a<code>chapter</code>element can have an optional
|
definesthat a<code>chapter</code>element can have an
|
||||||
<code>id</code>attributeof type <code>ID</code>, usable for reference from
|
optional<code>id</code>attributeof type <code>ID</code>, usable for reference
|
||||||
attribute of typeIDREF:</p><p><code><!ATTLIST chapter id ID #IMPLIED></code></p><p>The last value of an attribute definition can be
|
fromattribute of typeIDREF:</p><p><code><!ATTLIST chapter id ID #IMPLIED></code></p><p>The last value of an attribute definition can
|
||||||
<code>#REQUIRED</code>meaning that the attribute has to be given,
|
be<code>#REQUIRED</code>meaning that the attribute has to be
|
||||||
<code>#IMPLIED</code>meaning that it is optional, or the default value
|
given,<code>#IMPLIED</code>meaning that it is optional, or the default
|
||||||
(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
|
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
|
||||||
asingle expression, but it is just a convention adopted by a lot of
|
inasingle expression, but it is just a convention adopted by a lot
|
||||||
DTDwriters:
|
ofDTDwriters:
|
||||||
<pre><!ATTLIST termdef
|
<pre><!ATTLIST termdef
|
||||||
id ID #REQUIRED
|
id ID #REQUIRED
|
||||||
name CDATA #IMPLIED></pre>
|
name CDATA #IMPLIED></pre>
|
||||||
<p>The previous construct defines both
|
<p>The previous construct defines
|
||||||
<code>id</code>and<code>name</code>attributes for the element
|
both<code>id</code>and<code>name</code>attributes for the
|
||||||
<code>termdef</code>.</p>
|
element<code>termdef</code>.</p>
|
||||||
</li>
|
</li>
|
||||||
</ul><h3><a name="Some1" id="Some1">Some examples</a></h3><p>The directory <code>test/valid/dtds/</code>in the libxml2
|
</ul><h3><a name="Some1" id="Some1">Some examples</a></h3><p>The directory <code>test/valid/dtds/</code>in the
|
||||||
distributioncontains some complex DTD examples. The example in the
|
libxml2distributioncontains some complex DTD examples. The example in
|
||||||
file<code>test/valid/dia.xml</code>shows an XML file where the simple DTD
|
thefile<code>test/valid/dia.xml</code>shows an XML file where the simple
|
||||||
isdirectly included within the document.</p><h3><a name="validate1" id="validate1">How to validate</a></h3><p>The simplest way is to use the xmllint program included with libxml.
|
DTDisdirectly included within the document.</p><h3><a name="validate1" id="validate1">How to validate</a></h3><p>The simplest way is to use the xmllint program included with
|
||||||
The<code>--valid</code>option turns-on validation of the files given as
|
libxml.The<code>--valid</code>option turns-on validation of the files given
|
||||||
input.For example the following validates a copy of the first revision of the
|
asinput.For example the following validates a copy of the first revision of
|
||||||
XML1.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
|
theXML1.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
|
||||||
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">associateddescription</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,
|
document(s)againsta given DTD.</p><p>Libxml2 exports an API to handle DTDs and validation, check the <a href="http://xmlsoft.org/html/libxml-valid.html">associateddescription</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
|
||||||
Iwill just list one for now, others pointers welcome:</p><ul><li><a href="http://www.xml101.com:8081/dtd/">XML-101 DTD</a></li>
|
on-line,Iwill 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 ofthe
|
</ul><p>I suggest looking at the examples found under test/valid/dtd and any
|
||||||
large number of books available on XML. The dia example in test/validshould
|
ofthelarge number of books available on XML. The dia example in
|
||||||
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>
|
test/validshouldbe 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>
|
||||||
|
|||||||
124
doc/xmlio.html
124
doc/xmlio.html
@@ -13,65 +13,64 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<li><a href="#Output">Output I/O handlers</a></li>
|
<li><a href="#Output">Output I/O handlers</a></li>
|
||||||
<li><a href="#entities">The entities loader</a></li>
|
<li><a href="#entities">The entities loader</a></li>
|
||||||
<li><a href="#Example2">Example of customized I/O</a></li>
|
<li><a href="#Example2">Example of customized I/O</a></li>
|
||||||
</ol><h3><a name="General1" id="General1">General overview</a></h3><p>The module <code><a href="http://xmlsoft.org/html/libxml-xmlio.html">xmlIO.h</a></code>providesthe
|
</ol><h3><a name="General1" id="General1">General overview</a></h3><p>The module <code><a href="http://xmlsoft.org/html/libxml-xmlio.html">xmlIO.h</a></code>providestheinterfaces
|
||||||
interfaces to the libxml2 I/O system. This consists of 4 main parts:</p><ul><li>Entities loader, this is a routine which tries to fetch the
|
to the libxml2 I/O system. This consists of 4 main parts:</p><ul><li>Entities loader, this is a routine which tries to fetch
|
||||||
entities(files) based on their PUBLIC and SYSTEM identifiers. The default
|
theentities(files) based on their PUBLIC and SYSTEM identifiers. The
|
||||||
loaderdon't look at the public identifier since libxml2 do not maintain
|
defaultloaderdon't look at the public identifier since libxml2 do not
|
||||||
acatalog. You can redefine you own entity loader by
|
maintainacatalog. You can redefine you own entity loader
|
||||||
using<code>xmlGetExternalEntityLoader()</code>and<code>xmlSetExternalEntityLoader()</code>.
|
byusing<code>xmlGetExternalEntityLoader()</code>and<code>xmlSetExternalEntityLoader()</code>.<a href="#entities">Check theexample</a>.</li>
|
||||||
<a href="#entities">Check theexample</a>.</li>
|
<li>Input I/O buffers which are a commodity structure used by
|
||||||
<li>Input I/O buffers which are a commodity structure used by the
|
theparser(s)input layer to handle fetching the informations to feed
|
||||||
parser(s)input layer to handle fetching the informations to feed the
|
theparser. Thisprovides buffering and is also a placeholder where
|
||||||
parser. Thisprovides buffering and is also a placeholder where the
|
theencodingconverters to UTF8 are piggy-backed.</li>
|
||||||
encodingconverters to UTF8 are piggy-backed.</li>
|
<li>Output I/O buffers are similar to the Input ones and fulfillsimilartask
|
||||||
<li>Output I/O buffers are similar to the Input ones and fulfill
|
but when generating a serialization from a tree.</li>
|
||||||
similartask but when generating a serialization from a tree.</li>
|
<li>A mechanism to register sets of I/O callbacks and associate
|
||||||
<li>A mechanism to register sets of I/O callbacks and associate them
|
themwithspecific naming schemes like the protocol part of the URIs.
|
||||||
withspecific naming schemes like the protocol part of the URIs.
|
<p>This affect the default I/O operations and allows to use
|
||||||
<p>This affect the default I/O operations and allows to use specific
|
specificI/Ohandlers for certain names.</p>
|
||||||
I/Ohandlers for certain names.</p>
|
|
||||||
</li>
|
</li>
|
||||||
</ul><p>The general mechanism used when loading http://rpmfind.net/xml.html
|
</ul><p>The general mechanism used when loading
|
||||||
forexample in the HTML parser is the following:</p><ol><li>The default entity loader calls
|
http://rpmfind.net/xml.htmlforexample in the HTML parser is the following:</p><ol><li>The default entity loader
|
||||||
<code>xmlNewInputFromFile()</code>withthe parsing context and the URI
|
calls<code>xmlNewInputFromFile()</code>withthe parsing context and the
|
||||||
string.</li>
|
URIstring.</li>
|
||||||
<li>the URI string is checked against the existing registered handlersusing
|
<li>the URI string is checked against the existing registered
|
||||||
their match() callback function, if the HTTP module was compiledin, it is
|
handlersusingtheir match() callback function, if the HTTP module was
|
||||||
registered and its match() function will succeeds</li>
|
compiledin, it isregistered and its match() function will succeeds</li>
|
||||||
<li>the open() function of the handler is called and if successful
|
<li>the open() function of the handler is called and if
|
||||||
willreturn an I/O Input buffer</li>
|
successfulwillreturn an I/O Input buffer</li>
|
||||||
<li>the parser will the start reading from this buffer and
|
<li>the parser will the start reading from this buffer
|
||||||
progressivelyfetch information from the resource, calling the read()
|
andprogressivelyfetch information from the resource, calling the
|
||||||
function of thehandler until the resource is exhausted</li>
|
read()function of thehandler until the resource is exhausted</li>
|
||||||
<li>if an encoding change is detected it will be installed on the
|
<li>if an encoding change is detected it will be installed on
|
||||||
inputbuffer, providing buffering and efficient use of the
|
theinputbuffer, providing buffering and efficient use of
|
||||||
conversionroutines</li>
|
theconversionroutines</li>
|
||||||
<li>once the parser has finished, the close() function of the handler
|
<li>once the parser has finished, the close() function of the
|
||||||
iscalled once and the Input buffer and associated resources
|
handleriscalled once and the Input buffer and associated
|
||||||
aredeallocated.</li>
|
resourcesaredeallocated.</li>
|
||||||
</ol><p>The user defined callbacks are checked first to allow overriding of
|
</ol><p>The user defined callbacks are checked first to allow overriding
|
||||||
thedefault libxml2 I/O routines.</p><h3><a name="basic" id="basic">The basic buffer type</a></h3><p>All the buffer manipulation handling is done using
|
ofthedefault libxml2 I/O routines.</p><h3><a name="basic" id="basic">The basic buffer type</a></h3><p>All the buffer manipulation handling is done
|
||||||
the<code>xmlBuffer</code>type define in <code><a href="http://xmlsoft.org/html/libxml-tree.html">tree.h</a></code>which is
|
usingthe<code>xmlBuffer</code>type define in <code><a href="http://xmlsoft.org/html/libxml-tree.html">tree.h</a></code>which
|
||||||
aresizable memory buffer. The buffer allocation strategy can be selected to
|
isaresizable memory buffer. The buffer allocation strategy can be selected
|
||||||
beeither best-fit or use an exponential doubling one (CPU vs. memory
|
tobeeither best-fit or use an exponential doubling one (CPU vs.
|
||||||
usetrade-off). The values are
|
memoryusetrade-off). The values
|
||||||
<code>XML_BUFFER_ALLOC_EXACT</code>and<code>XML_BUFFER_ALLOC_DOUBLEIT</code>,
|
are<code>XML_BUFFER_ALLOC_EXACT</code>and<code>XML_BUFFER_ALLOC_DOUBLEIT</code>,and
|
||||||
and can be set individually or on asystem wide basis using
|
can be set individually or on asystem wide basis
|
||||||
<code>xmlBufferSetAllocationScheme()</code>. A numberof functions allows to
|
using<code>xmlBufferSetAllocationScheme()</code>. A numberof functions allows
|
||||||
manipulate buffers with names starting with
|
tomanipulate buffers with names starting
|
||||||
the<code>xmlBuffer...</code>prefix.</p><h3><a name="Input" id="Input">Input I/O handlers</a></h3><p>An Input I/O handler is a simple
|
withthe<code>xmlBuffer...</code>prefix.</p><h3><a name="Input" id="Input">Input I/O handlers</a></h3><p>An Input I/O handler is a
|
||||||
structure<code>xmlParserInputBuffer</code>containing a context associated to
|
simplestructure<code>xmlParserInputBuffer</code>containing a context
|
||||||
theresource (file descriptor, or pointer to a protocol handler), the read()
|
associated totheresource (file descriptor, or pointer to a protocol handler),
|
||||||
andclose() callbacks to use and an xmlBuffer. And extra xmlBuffer and a
|
the read()andclose() callbacks to use and an xmlBuffer. And extra xmlBuffer
|
||||||
charsetencoding handler are also present to support charset conversion
|
and acharsetencoding handler are also present to support charset
|
||||||
whenneeded.</p><h3><a name="Output" id="Output">Output I/O handlers</a></h3><p>An Output handler <code>xmlOutputBuffer</code>is completely similar to
|
conversionwhenneeded.</p><h3><a name="Output" id="Output">Output I/O handlers</a></h3><p>An Output handler <code>xmlOutputBuffer</code>is completely similar
|
||||||
anInput one except the callbacks are write() and close().</p><h3><a name="entities" id="entities">The entities loader</a></h3><p>The entity loader resolves requests for new entities and create inputs
|
toanInput one except the callbacks are write() and close().</p><h3><a name="entities" id="entities">The entities loader</a></h3><p>The entity loader resolves requests for new entities and create
|
||||||
forthe parser. Creating an input from a filename or an URI string is
|
inputsforthe parser. Creating an input from a filename or an URI string
|
||||||
donethrough the xmlNewInputFromFile() routine. The default entity loader do
|
isdonethrough the xmlNewInputFromFile() routine. The default entity loader
|
||||||
nothandle the PUBLIC identifier associated with an entity (if any). So it
|
donothandle the PUBLIC identifier associated with an entity (if any). So
|
||||||
justcalls xmlNewInputFromFile() with the SYSTEM identifier (which is
|
itjustcalls xmlNewInputFromFile() with the SYSTEM identifier (which
|
||||||
mandatory inXML).</p><p>If you want to hook up a catalog mechanism then you simply need tooverride
|
ismandatory inXML).</p><p>If you want to hook up a catalog mechanism then you simply need
|
||||||
the default entity loader, here is an example:</p><pre>#include <libxml/xmlIO.h>
|
tooverridethe default entity loader, here is an example:</p><pre>#include <libxml/xmlIO.h>
|
||||||
|
|
||||||
xmlExternalEntityLoader defaultLoader = NULL;
|
xmlExternalEntityLoader defaultLoader = NULL;
|
||||||
|
|
||||||
@@ -100,11 +99,10 @@ int main(..) {
|
|||||||
xmlSetExternalEntityLoader(xmlMyExternalEntityLoader);
|
xmlSetExternalEntityLoader(xmlMyExternalEntityLoader);
|
||||||
|
|
||||||
...
|
...
|
||||||
}</pre><h3><a name="Example2" id="Example2">Example of customized I/O</a></h3><p>This example come from <a href="http://xmlsoft.org/messages/0708.html">areal use case</a>,
|
}</pre><h3><a name="Example2" id="Example2">Example of customized I/O</a></h3><p>This example come from <a href="http://xmlsoft.org/messages/0708.html">areal use case</a>,xmlDocDump()
|
||||||
xmlDocDump() closes the FILE * passed by the applicationand this was a
|
closes the FILE * passed by the applicationand this was aproblem. The <a href="http://xmlsoft.org/messages/0711.html">solution</a>wasto redefine anew
|
||||||
problem. The <a href="http://xmlsoft.org/messages/0711.html">solution</a>was
|
output handler with the closing call deactivated:</p><ol><li>First define a new I/O output allocator where the output don't
|
||||||
to redefine anew output handler with the closing call deactivated:</p><ol><li>First define a new I/O output allocator where the output don't closethe
|
closethefile:
|
||||||
file:
|
|
||||||
<pre>xmlOutputBufferPtr
|
<pre>xmlOutputBufferPtr
|
||||||
xmlOutputBufferCreateOwn(FILE *file, xmlCharEncodingHandlerPtr encoder) {
|
xmlOutputBufferCreateOwn(FILE *file, xmlCharEncodingHandlerPtr encoder) {
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>xmlOutputBufferPtr ret;
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>xmlOutputBufferPtr ret;
|
||||||
|
|||||||
167
doc/xmlmem.html
167
doc/xmlmem.html
@@ -12,92 +12,91 @@ A:link, A:visited, A:active { text-decoration: underline }
|
|||||||
<li><a href="#cleanup">Cleaning up after parsing</a></li>
|
<li><a href="#cleanup">Cleaning up after parsing</a></li>
|
||||||
<li><a href="#Debugging">Debugging routines</a></li>
|
<li><a href="#Debugging">Debugging routines</a></li>
|
||||||
<li><a href="#General4">General memory requirements</a></li>
|
<li><a href="#General4">General memory requirements</a></li>
|
||||||
</ol><h3><a name="General3" id="General3">General overview</a></h3><p>The module <code><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlmemory.h</a></code>provides
|
</ol><h3><a name="General3" id="General3">General overview</a></h3><p>The module <code><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlmemory.h</a></code>providesthe
|
||||||
the interfaces to the libxml2 memory system:</p><ul><li>libxml2 does not use the libc memory allocator directly but
|
interfaces to the libxml2 memory system:</p><ul><li>libxml2 does not use the libc memory allocator directly
|
||||||
xmlFree(),xmlMalloc() and xmlRealloc()</li>
|
butxmlFree(),xmlMalloc() and xmlRealloc()</li>
|
||||||
<li>those routines can be reallocated to a specific set of routine,
|
<li>those routines can be reallocated to a specific set of
|
||||||
bydefault the libc ones i.e. free(), malloc() and realloc()</li>
|
routine,bydefault the libc ones i.e. free(), malloc() and realloc()</li>
|
||||||
<li>the xmlmemory.c module includes a set of debugging routine</li>
|
<li>the xmlmemory.c module includes a set of debugging routine</li>
|
||||||
</ul><h3><a name="setting" id="setting">Setting libxml2 set of memory routines</a></h3><p>It is sometimes useful to not use the default memory allocator, either
|
</ul><h3><a name="setting" id="setting">Setting libxml2 set of memory routines</a></h3><p>It is sometimes useful to not use the default memory allocator,
|
||||||
fordebugging, analysis or to implement a specific behaviour on memory
|
eitherfordebugging, analysis or to implement a specific behaviour on
|
||||||
management(like on embedded systems). Two function calls are available to do
|
memorymanagement(like on embedded systems). Two function calls are available
|
||||||
so:</p><ul><li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemGet()</a>which
|
to doso:</p><ul><li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemGet()</a>whichreturn
|
||||||
return the current set of functions in use by the parser</li>
|
the current set of functions in use by the parser</li>
|
||||||
<li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemSetup()</a>which
|
<li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemSetup()</a>whichallow
|
||||||
allow to set up a new set of memory allocation functions</li>
|
to set up a new set of memory allocation functions</li>
|
||||||
</ul><p>Of course a call to xmlMemSetup() should probably be done before
|
</ul><p>Of course a call to xmlMemSetup() should probably be done beforecallingany
|
||||||
callingany other libxml2 routines (unless you are sure your allocations
|
other libxml2 routines (unless you are sure your allocationsroutines
|
||||||
routines arecompatibles).</p><h3><a name="cleanup" id="cleanup">Cleaning up after parsing</a></h3><p>Libxml2 is not stateless, there is a few set of memory structures
|
arecompatibles).</p><h3><a name="cleanup" id="cleanup">Cleaning up after parsing</a></h3><p>Libxml2 is not stateless, there is a few set of memory
|
||||||
needingallocation before the parser is fully functional (some encoding
|
structuresneedingallocation before the parser is fully functional (some
|
||||||
structuresfor example). This also mean that once parsing is finished there is
|
encodingstructuresfor example). This also mean that once parsing is finished
|
||||||
a tinyamount of memory (a few hundred bytes) which can be recollected if you
|
there isa tinyamount of memory (a few hundred bytes) which can be recollected
|
||||||
don'treuse the parser immediately:</p><ul><li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlCleanupParser()</a>is
|
if youdon'treuse the parser immediately:</p><ul><li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlCleanupParser()</a>isa
|
||||||
a centralized routine to free the parsing states. Note that itwon't
|
centralized routine to free the parsing states. Note that
|
||||||
deallocate any produced tree if any (use the xmlFreeDoc() andrelated
|
itwon'tdeallocate any produced tree if any (use the xmlFreeDoc()
|
||||||
routines for this).</li>
|
andrelatedroutines for this).</li>
|
||||||
<li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlInitParser()</a>is
|
<li><a href="http://xmlsoft.org/html/libxml-parser.html">xmlInitParser()</a>isthe
|
||||||
the dual routine allowing to preallocate the parsing statewhich can be
|
dual routine allowing to preallocate the parsing statewhich can beuseful
|
||||||
useful for example to avoid initialization reentrancyproblems when using
|
for example to avoid initialization reentrancyproblems when usinglibxml2
|
||||||
libxml2 in multithreaded applications</li>
|
in multithreaded applications</li>
|
||||||
</ul><p>Generally xmlCleanupParser() is safe, if needed the state will be
|
</ul><p>Generally xmlCleanupParser() is safe, if needed the state will berebuildat
|
||||||
rebuildat the next invocation of parser routines, but be careful of the
|
the next invocation of parser routines, but be careful of theconsequencesin
|
||||||
consequencesin multithreaded applications.</p><h3><a name="Debugging" id="Debugging">Debugging routines</a></h3><p>When configured using --with-mem-debug flag (off by default), libxml2
|
multithreaded applications.</p><h3><a name="Debugging" id="Debugging">Debugging routines</a></h3><p>When configured using --with-mem-debug flag (off by default), libxml2usesa
|
||||||
usesa set of memory allocation debugging routines keeping track of all
|
set of memory allocation debugging routines keeping track of
|
||||||
allocatedblocks and the location in the code where the routine was called. A
|
allallocatedblocks and the location in the code where the routine was called.
|
||||||
couple ofother debugging routines allow to dump the memory allocated infos to
|
Acouple ofother debugging routines allow to dump the memory allocated infos
|
||||||
a fileor call a specific routine when a given block number is allocated:</p><ul><li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMallocLoc()</a><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlReallocLoc()</a>and
|
toa fileor call a specific routine when a given block number is allocated:</p><ul><li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMallocLoc()</a><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlReallocLoc()</a>and<a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemStrdupLoc()</a>arethe
|
||||||
<a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemStrdupLoc()</a>are
|
memory debugging replacement allocation routines</li>
|
||||||
the memory debugging replacement allocation routines</li>
|
<li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemoryDump()</a>dumpsall
|
||||||
<li><a href="http://xmlsoft.org/html/libxml-xmlmemory.html">xmlMemoryDump()</a>dumps
|
the informations about the allocated memory block leftsin
|
||||||
all the informations about the allocated memory block leftsin the
|
the<code>.memdump</code>file</li>
|
||||||
<code>.memdump</code>file</li>
|
</ul><p>When developing libxml2 memory debug is enabled, the tests
|
||||||
</ul><p>When developing libxml2 memory debug is enabled, the tests programs
|
programscallxmlMemoryDump () and the "make test" regression tests will check
|
||||||
callxmlMemoryDump () and the "make test" regression tests will check for
|
foranymemory leak during the full regression test sequence, this helps
|
||||||
anymemory leak during the full regression test sequence, this helps a
|
alotensuring that libxml2 does not leak memory and bullet
|
||||||
lotensuring that libxml2 does not leak memory and bullet proof
|
proofmemoryallocations use (some libc implementations are known to be far
|
||||||
memoryallocations use (some libc implementations are known to be far too
|
toopermissiveresulting in major portability problems!).</p><p>If the .memdump reports a leak, it displays the allocation functionandalso
|
||||||
permissiveresulting in major portability problems!).</p><p>If the .memdump reports a leak, it displays the allocation function
|
tries to give some informations about the content and structure
|
||||||
andalso tries to give some informations about the content and structure of
|
oftheallocated blocks left. This is sufficient in most cases to find
|
||||||
theallocated blocks left. This is sufficient in most cases to find the
|
theculprit,but not always. Assuming the allocation problem is reproducible,
|
||||||
culprit,but not always. Assuming the allocation problem is reproducible, it
|
itispossible to find more easily:</p><ol><li>write down the block number xxxx not allocated</li>
|
||||||
ispossible to find more easily:</p><ol><li>write down the block number xxxx not allocated</li>
|
<li>export the environment variable XML_MEM_BREAKPOINT=xxxx ,
|
||||||
<li>export the environment variable XML_MEM_BREAKPOINT=xxxx , the
|
theeasiestwhen using GDB is to simply give the command
|
||||||
easiestwhen using GDB is to simply give the command
|
|
||||||
<p><code>set environment XML_MEM_BREAKPOINT xxxx</code></p>
|
<p><code>set environment XML_MEM_BREAKPOINT xxxx</code></p>
|
||||||
<p>before running the program.</p>
|
<p>before running the program.</p>
|
||||||
</li>
|
</li>
|
||||||
<li>run the program under a debugger and set a breakpoint
|
<li>run the program under a debugger and set a
|
||||||
onxmlMallocBreakpoint() a specific function called when this precise
|
breakpointonxmlMallocBreakpoint() a specific function called when this
|
||||||
blockis allocated</li>
|
preciseblockis allocated</li>
|
||||||
<li>when the breakpoint is reached you can then do a fine analysis of
|
<li>when the breakpoint is reached you can then do a fine analysis
|
||||||
theallocation an step to see the condition resulting in the
|
oftheallocation an step to see the condition resulting in
|
||||||
missingdeallocation.</li>
|
themissingdeallocation.</li>
|
||||||
</ol><p>I used to use a commercial tool to debug libxml2 memory problems but
|
</ol><p>I used to use a commercial tool to debug libxml2 memory problems
|
||||||
afternoticing that it was not detecting memory leaks that simple mechanism
|
butafternoticing that it was not detecting memory leaks that simple
|
||||||
wasused and proved extremely efficient until now. Lately I have also used <a href="http://developer.kde.org/~sewardj/">valgrind</a>with quite somesuccess,
|
mechanismwasused and proved extremely efficient until now. Lately I have also
|
||||||
it is tied to the i386 architecture since it works by emulating theprocessor
|
used <a href="http://developer.kde.org/~sewardj/">valgrind</a>with quite
|
||||||
and instruction set, it is slow but extremely efficient, i.e. itspot memory
|
somesuccess,it is tied to the i386 architecture since it works by emulating
|
||||||
usage errors in a very precise way.</p><h3><a name="General4" id="General4">General memory requirements</a></h3><p>How much libxml2 memory require ? It's hard to tell in average it
|
theprocessorand instruction set, it is slow but extremely efficient, i.e.
|
||||||
dependsof a number of things:</p><ul><li>the parser itself should work in a fixed amount of memory, except
|
itspot memoryusage errors in a very precise way.</p><h3><a name="General4" id="General4">General memory requirements</a></h3><p>How much libxml2 memory require ? It's hard to tell in average itdependsof
|
||||||
forinformation maintained about the stacks of names and entities
|
a number of things:</p><ul><li>the parser itself should work in a fixed amount of memory,
|
||||||
locations.The I/O and encoding handlers will probably account for a few
|
exceptforinformation maintained about the stacks of names and
|
||||||
KBytes.This is true for both the XML and HTML parser (though the HTML
|
entitieslocations.The I/O and encoding handlers will probably account for
|
||||||
parserneed more state).</li>
|
a fewKBytes.This is true for both the XML and HTML parser (though the
|
||||||
<li>If you are generating the DOM tree then memory requirements will
|
HTMLparserneed more state).</li>
|
||||||
grownearly linear with the size of the data. In general for a
|
<li>If you are generating the DOM tree then memory requirements
|
||||||
balancedtextual document the internal memory requirement is about 4 times
|
willgrownearly linear with the size of the data. In general for
|
||||||
thesize of the UTF8 serialization of this document (example the
|
abalancedtextual document the internal memory requirement is about 4
|
||||||
XML-1.0recommendation is a bit more of 150KBytes and takes 650KBytes of
|
timesthesize of the UTF8 serialization of this document (example
|
||||||
mainmemory when parsed). Validation will add a amount of memory required
|
theXML-1.0recommendation is a bit more of 150KBytes and takes 650KBytes
|
||||||
formaintaining the external Dtd state which should be linear with
|
ofmainmemory when parsed). Validation will add a amount of memory
|
||||||
thecomplexity of the content model defined by the Dtd</li>
|
requiredformaintaining the external Dtd state which should be linear
|
||||||
<li>If you need to work with fixed memory requirements or don't need
|
withthecomplexity of the content model defined by the Dtd</li>
|
||||||
thefull DOM tree then using the <a href="xmlreader.html">xmlReaderinterface</a>is probably the best way to
|
<li>If you need to work with fixed memory requirements or don't needthefull
|
||||||
proceed, it still allows tovalidate or operate on subset of the tree if
|
DOM tree then using the <a href="xmlreader.html">xmlReaderinterface</a>is
|
||||||
needed.</li>
|
probably the best way toproceed, it still allows tovalidate or operate on
|
||||||
<li>If you don't care about the advanced features of libxml2
|
subset of the tree ifneeded.</li>
|
||||||
likevalidation, DOM, XPath or XPointer, don't use entities, need to work
|
<li>If you don't care about the advanced features of libxml2likevalidation,
|
||||||
withfixed memory requirements, and try to get the fastest parsing
|
DOM, XPath or XPointer, don't use entities, need to workwithfixed memory
|
||||||
possiblethen the SAX interface should be used, but it has known
|
requirements, and try to get the fastest parsingpossiblethen the SAX
|
||||||
restrictions.</li>
|
interface should be used, but it has knownrestrictions.</li>
|
||||||
</ul><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>
|
</ul><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>
|
||||||
|
|||||||
Reference in New Issue
Block a user